我使用mysqldump
和psql
从MySQL迁移到Postgres。我复制了所有数据,但serial
s从1开始。我需要将起始值更新为最后一个id号。如何编写脚本以自动执行此操作?我试过了
alter sequence keyword_id_seq restart (select max(id) from keyword);
它出错了
ERROR: syntax error at or near "(" at character 39
STATEMENT: alter sequence keyword_id_seq restart (select max(id) from keyword);
ERROR: syntax error at or near "("
LINE 1: alter sequence keyword_id_seq restart (select max(id) from k...
我无法在创建序列时设置起始值(使用CREATE SEQUENCE table_colname_seq START 123;
),因为在我编辑文件或复制数据之前,可能会将新值插入到旧数据库中
答案 0 :(得分:1)
使用setval
。
SELECT setval('keyword_id_seq', (select max(id) from keyword));