我想在表格中设置一个序列。所以我用
列出了所有序列SELECT c.relname
FROM pg_class c
WHERE c.relkind = 'S';
给了我例如:tableName_id_seq
当我尝试使用
设置序列时SELECT setval("tableName_id_seq", (SELECT MAX(id) from "tableName"));
我明白了:
ERROR: relation "tableName_id_seq" does not exist
LINE 1: SELECT setval('tableName_id_seq', (SELECT MAX(id) from "t...
我已经尝试过单引号和双引号。任何人都知道该怎么做?
答案 0 :(得分:2)
避免在驼峰情况下创建标识符。使用它真的很无聊:
CREATE SEQUENCE "CamelCaseSeq";
SELECT nextval(format('%I', 'CamelCaseSeq'));
SELECT setval(format('%I', 'CamelCaseSeq'), 6666);
SELECT currval(format('%I', 'CamelCaseSeq'));
SELECT * FROM "CamelCaseSeq";
文档引用:
引用标识符也会使其区分大小写,而不引用标识符 名称始终折叠为小写。例如,标识符 FOO,foo和" foo" PostgreSQL被认为是相同的,但" Foo" 和" FOO"不同于这三者和彼此。