在pgsql中,有一种方法可以建立一个包含多个值的表,然后选择其中一个值(例如other_id),找出其最大值,并使表中的每个新条目都从该值开始递增。
我想这太容易了,没有机会工作。
ALTER TABLE address ALTER COLUMN new_id TYPE SERIAL ____________________________________ ERROR: type "serial" does not exist
非常感谢您的见解!
快速浏览一下文档会告诉您
数据类型smallserial, serial 和bigserial 不是真实类型, 而只是创建唯一标识符列的符号方便
如果你想使现有的(整数)列作“串行”,只是手动创建序列(任意名称),其当前的值设置为当前的最大(或更大)address.new_id的值,在集作为address.new_id列的默认值。
address.new_id
要设置序列的值,请参见此处。
SELECT setval('address_new_id_seq', 10000);
这只是一个示例,使用您自己的序列名称(任意,您可以创建它),并且其数字大于列的最大当前值。
更新: 正如卢卡斯的答案所指出的那样(应该接受),您还应该使用CREATE/ALTER SEQUENCE ... OWNED BY ...
CREATE/ALTER SEQUENCE ... OWNED BY ...