Eintag mit Backslash löschen ...

Hallo,
ich versucher krampfhaft diesen Datensatz zu löschen

delete from productref WHERE productref_item ILIKE 'E:\Daten\Eigene Bilder\Bilder - Kunst\Pilze\DSC00909.JPG' AND product_id =1;

ich bekomme diese Meldung:

WARNING:  nonstandard use of escape in a string literal
ZEILE 1: ...elete from productref WHERE productref_item ILIKE 'E:\Daten\...
                                                              ^
TIP:  Use the escape string syntax for escapes, e.g., E'\r\n'.

Abfrage war erfolgreich durchgeführt: 0 Zeilen, 31 ms Ausführungszeit.

ich finde nicht viel Information, wie ich das mit der escape string syntax hinbekomme.

was kann ich tun?

danke
Frank

Auch Damit geht es nicht (laut postgres Beschreibung):

delete from productref WHERE productref_item ILIKE E'E:\Daten\Eigene Bilder\Bilder - Kunst\Pilze\DSC00909.JPG' AND product_id =1;

Der Inhalt der Tabelle:

1;"E:\Daten\Eigene Bilder\Bilder - Kunst\Pilze\DSC00909.JPG"

ich kann keinen Fehler finden :frowning:

ich hoffe einer von euch

Frank



test=# create table forum(id int, t text);
CREATE TABLE
test=*# insert into forum values (1, 'e:\\foo\\bar');
INSERT 0 1
test=*# insert into forum values (2, 'f:\\foo\\bar');
INSERT 0 1
test=*# delete from forum where id=1 and t = 'e:\\foo\\bar';
DELETE 1
test=*# delete from forum where id=2 and t ilike 'f:\\\\foo\\\\bar';
DELETE 1
test=*#

Hint: bei ilike wird ein Regex erwartet, da hat das Backslash eine gesonderte Funktion. In einem String muß man es daher nur einmal quoten, bei einem Regex dann halt wie oben.

Andreas

super!

viele Dank!

ach wenn ich schonmal hier bin …

ist es möglic einer Anweisung zu schreiben die eine bestehende Tabelle aktuallisiert (z.B.)hinzufügen/ändern einer Spalte) und wenn es diese Tabelle noch nicht gibt, hinzufügen. Sowas wie ALTER OR CREATE Tabelle …

vielen Dank

Frank

Man könnte es recht schnell mit plpgsql scripten.

Andreas