MySQL => Postgres迁移:如何编写序列起始值的脚本?

时间:2015-09-23 02:13:40

标签: mysql postgresql migration sequence database-administration

我使用mysqldumppsql从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;),因为在我编辑文件或复制数据之前,可能会将新值插入到旧数据库中

1 个答案:

答案 0 :(得分:1)

使用setval

SELECT setval('keyword_id_seq', (select max(id) from keyword));