【发布时间】:2016-05-05 18:23:28
【问题描述】:
我想将一个序列添加到可能已经有数据的列中,所以我试图在已经存在的内容之外启动它。假设已经有数据,我想这样做:
CREATE SEQUENCE my_sequence MINVALUE 1000000 START
(SELECT MAX(id_column) FROM my_table) OWNED BY my_table.id_column;
但它一直在 ( 声称语法错误。就好像起始值必须是冷硬数字——没有任何象征意义。
当然,如果序列足够智能以避免重复值,则更好的解决方案是,因为id_column 对其具有独特的约束——这就是我这样做的原因。但据我所知,这是不可能的。
我也尝试跳过START 然后做:
ALTER SEQUENCE my_sequence RESTART WITH (SELECT max(id_column)+1 FROM my_table);
但是,再一次,它似乎不像是符号开始值。
我正在运行 PostgreSQL 9.4,但我们的一些客户正在使用像 8.3 这样原始的东西。
【问题讨论】:
标签: postgresql sequence unique-constraint