Ergebnis 1 bis 3 von 3

Thema: WHERE LIKE Bedinung bei Rule schlägt fehl

  1. #1
    mrmaddin ist offline Neuer Benutzer
    Registriert seit
    12.08.2008
    Beiträge
    2

    Standard WHERE LIKE Bedinung bei Rule schlägt fehl

    Hallo,

    ich habe eine Regel auf eine Tabelle erstellt, die bei einfügen eines bestimmten Eintrages einen Vermerk in einer anderen Tabelle setzen soll:

    CREATE OR REPLACE RULE version AS ON INSERT TO t_log WHERE new.abgerufene_datei LIKE '%version%' DO (
    [..]
    )

    Leider spricht die Regel nicht an. Sobald ich den Vergleichsoperator auf = setze (also new.abgerufene_datei='something') funktioniert es. Ich kann aber nicht 100% voraussagen, was in dem Feld steht, da die Version sich mit der Zeit ändert...

    Ich habe folgende Operatoren probiert, bei allen schlägt es fehl.

    new.abgerufene_datei LIKE '%version%'
    new.abgerufene_datei ~~ '%version%'
    new.abgerufene_datei ~* '.*version.*'
    new.abgerufene_datei ~ '.*version.*'

    Das Postgres Manual schreibt zu conditions: "Any SQL conditional expression (returning boolean). The condition expression may not refer to any tables except new and old, and may not contain aggregate functions."

    Was mache ich falsch?

    Es ist ein PostgreSQL 7.4.7 unter Linux.

    bYe Martin
    Geändert von mrmaddin (12.08.2008 um 16:53 Uhr) Grund: WYSIWYG Zeug entfernt.

  2. #2
    mrmaddin ist offline Neuer Benutzer
    Registriert seit
    12.08.2008
    Beiträge
    2

    Standard

    Update:

    Es funktioniert in dem ganzen Feld nicht...wende ich die entsprechenden Operatoren auf eine andere Spalte an funktioniert es.

  3. #3
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von mrmaddin Beitrag anzeigen
    Hallo,

    ich habe eine Regel auf eine Tabelle erstellt, die bei einfügen eines bestimmten Eintrages einen Vermerk in einer anderen Tabelle setzen soll:

    CREATE OR REPLACE RULE version AS ON INSERT TO t_log WHERE new.abgerufene_datei LIKE '%version%' DO (
    [..]
    )

    Leider spricht die Regel nicht an.
    Works for me:

    Code:
    test=*# create table log (t text);
    CREATE TABLE
    test=*# create table log_2 (t text);
    CREATE TABLE
    test=*# create or replace rule r_log as on insert to log where new.t ~ '.*foo.*' do also insert into log_2 values (new.t);
    CREATE RULE
    test=*# insert into log values ('bla');
    INSERT 0 1
    test=*# insert into log values ('bla foo bla');
    INSERT 0 1
    test=*# select * from log_2;
          t
    -------------
     bla foo bla
    (1 Zeile)
    
    test=*# select version();
                                                version
    -----------------------------------------------------------------------------------------------
     PostgreSQL 8.3.3 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
    (1 Zeile)
    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

Ähnliche Themen

  1. Problem Zugriff auf PostgreSQL 8.2.5 unter Windows via IPv6 schlägt fehl
    Von KollmorgenAMAus im Forum Konfiguration
    Antworten: 3
    Letzter Beitrag: 01.12.2011, 14:04
  2. Problem select per php schlägt fehl
    Von Burlito im Forum Programmierung
    Antworten: 4
    Letzter Beitrag: 11.11.2009, 23:50
  3. "make Mapserver" schlägt fehl
    Von hotte im Forum PL/pgSQL
    Antworten: 9
    Letzter Beitrag: 08.06.2007, 22:29
  4. OLEDB Connect schlägt fehl
    Von JSpatz im Forum externe Schnittstellen
    Antworten: 0
    Letzter Beitrag: 01.06.2006, 07:45
  5. Kompilierung von psqlodbc schlägt fehl
    Von m_haussner im Forum externe Schnittstellen
    Antworten: 4
    Letzter Beitrag: 11.04.2006, 17:45

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum