WO die NICHT VORHANDEN ist in PostgreSQL gibt syntax-Fehler
Wenn man versucht, die WHERE NOT EXISTS
- Klausel, um zu verhindern, dass das hinzufügen einer Zeile mit einem doppelten Wert in der Spalte age
bekomme ich den Fehler syntax error at or near "WHERE"
.
Warum hat es werfen ein syntax-Fehler? Ich bin mit Postgresql 9.1.
SQL
INSERT INTO live.users ("website", "age")
values ('abc', '123')
WHERE NOT EXISTS (SELECT age FROM live.users WHERE age = 123);
Fehler
ERROR: syntax error at or near "WHERE"
LINE 6: WHERE NOT EXISTS (SELECT age FROM live.users W...
Wenn Sie möchten, um zu verhindern, dass doppelte Werte in einer Spalte, wäre es besser, fügen Sie ein
unique constraint
dieser Spalte. (ALTER TABLE live.Benutzer ADD CONSTRAINT age_unique EINZIGARTIGE(Alter) )InformationsquelleAutor Nyxynyx | 2013-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stattdessen tun:
InformationsquelleAutor Daniel Vérité
InformationsquelleAutor Clodoaldo Neto
Traf ich einige Probleme mit der Verwendung
WHERE field NOT EXISTS
in PLPGSQL. Stattdessen, was gut funktionierte warWHERE field NOT IN
erhielt ich keine Funktion Fehler nach der Verwendung.InformationsquelleAutor TheodoreC
Sehe ich Sie fragte, für v9.1 aber es ist schon 4 Jahre da und jetzt, ab PostgreSQL v9.5 - LEGEN gibt Sie
ON CONFLICT … DO NOTHING
option:Erwähnenswert dies erfordert eine entsprechende Einschränkung auf die Ziel-Tabelle - aber in den meisten Fällen, ich denke, Sie hätte es auf jeden Fall. Andernfalls erhalten Sie:
InformationsquelleAutor msciwoj