如果您尝试像这样设置序列号:
SELECT setval('table_ID_seq', (SELECT max("ID") + 1 FROM table));
您可能会遇到以下错误:
ERROR: relation "table_ID_seq" does not exist
LINE 1: SELECT setval('table_ID_seq', (SELECT max("ID") + 1 FROM t...
^
********** Error **********
ERROR: relation "table_id_seq" does not exist
SQL Status:42P01
最佳答案
问题是 PostgreSQL 将标准化标识符名称,除非它们被放在双引号中。
但是,这是行不通的:
SELECT setval("table_ID_seq", (SELECT max("ID") + 1 FROM table));
相反,您必须在双引号文本周围加上单引号:
SELECT setval('"table_ID_seq"', (SELECT max("ID") + 1 FROM table));
关于postgresql - 为什么 "setval()"会因 "relation ... does not exist"而失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14484059/