我知道这个问题有点愚蠢,我需要运行这些查询来查看值是否不同步,但是我得到一个错误,比如“关系不存在”:
SELECT MAX(the_primary_key) FROM the_table;
SELECT nextval('the_primary_key_sequence');
我有一个名为“Audit”的表,主键为'auditID'。当我运行第一个查询时,我得到了结果:
SELECT MAX('auditID') FROM "Audit";
max
---------
auditID
(1 row)
但最大值应该超过10000。
然后我运行第二个查询,我得到错误'relation“the_primary_key_sequence”或“Audit_auditID_seq”不存在'。如何检查是否存在任何主键序列?
错误:
select setval('Audit_auditID_seq', 171832, true);
ERROR: relation "audit_auditid_seq" does not exist
LINE 1: select setval('Audit_auditID_seq', 171832, true);
我弄清楚了我的所有问题,引用标记在这种情况下非常敏感;
SELECT MAX("auditID") FROM "Audit";
max
--------
171832
(1 row)
SELECT nextval('"Audit_auditID_seq"');
----
139801
最后使值相同:
select setval('"Audit_auditID_seq"', 171832, true);
如果您需要找出序列,请使用
\d "table_name";