PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Warum schlägt setval() fehl, wenn relation ... nicht existiert?

Das Problem ist, dass PostgreSQL Bezeichnernamen normalisiert, es sei denn, sie werden in doppelte Anführungszeichen gesetzt.

Dies wird jedoch nicht funktionieren:

SELECT setval("table_ID_seq", (SELECT max("ID") + 1 FROM table));

Stattdessen müssen Sie den Text in doppelten Anführungszeichen in einfache Anführungszeichen setzen:

SELECT setval('"table_ID_seq"', (SELECT max("ID") + 1 FROM table));