我使用的是与开源Parse Server集成的PostgreSQL 9.5 X64。我的表具有以下结构。
objectId (text with fixed 10 characters),
item_id (integer),
item_name (text with various length)
由于使用了Parse Server,objectId
是主键。它由Parse Server自动生成。 item_id
不是主键。我想在创建新记录时使item_id
自动增加1。在创建表中如何实现?
答案 0 :(得分:3)
添加带有序列的默认值:
CREATE SEQUENCE mytable_item_id_seq OWNED BY mytable. item_id;
ALTER TABLE mytable ALTER item_id SET DEFAULT nextval('mytable_item_id_seq;
要使其正常工作,您必须从所有item_id
法规中排除INSERT
列,因为仅在未为该列指定任何值的情况下才使用默认值。
答案 1 :(得分:2)
您可以尝试将item_id
列设为SERIAL
。我不知道是否可以更改当前的item_id
列使其成为串行列,因此我们可能必须删除该列然后将其重新添加,如下所示:
ALTER TABLE yourTable DROP COLUMN item_id;
ALTER TABLE yourTable ADD COLUMN item_id SERIAL;
如果item_id
列中已经有数据,那么从串行角度看可能没有意义,因此希望删除它没有危害。