MySQL => Postgres 迁移:如何编写序列起始值的脚本?
MySQL => Postgres migration: How do I script the sequence start values?
我正在使用 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;
),因为在我编辑文件时或复制数据之前,新值可能会插入到旧数据库中。
使用setval
.
SELECT setval('keyword_id_seq', (select max(id) from keyword));
我正在使用 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;
),因为在我编辑文件时或复制数据之前,新值可能会插入到旧数据库中。
使用setval
.
SELECT setval('keyword_id_seq', (select max(id) from keyword));