PostgreSQL 将自动递增添加到空 ID 列
PostgreSQL add auto increment to empty ID column
我在 PostgreSQL 中创建了 table,但我忘记添加 auto increment
。
如何更改 Postgres 中的空 Id
列以添加 auto increment
?
您需要创建一个属于该列的序列并将其设置为默认值。
例如
CREATE TABLE mytable (id int);
CREATE SEQUENCE mytable_id_seq OWNED BY mytable.id;
ALTER TABLE mytable ALTER COLUMN id SET DEFAULT nextval('mytable_id_seq');
从 Postgres 10 开始,建议为此使用 identity
列。
您可以使用 ALTER TABLE:
将现有列转换为标识列
alter table the_table
alter id add generated always as identity;
如果 table 中已有数据,则需要同步序列:
select setval(pg_get_serial_sequence('the_table', 'id'), (select max(id) from the_table));
我在 PostgreSQL 中创建了 table,但我忘记添加 auto increment
。
如何更改 Postgres 中的空 Id
列以添加 auto increment
?
您需要创建一个属于该列的序列并将其设置为默认值。
例如
CREATE TABLE mytable (id int);
CREATE SEQUENCE mytable_id_seq OWNED BY mytable.id;
ALTER TABLE mytable ALTER COLUMN id SET DEFAULT nextval('mytable_id_seq');
从 Postgres 10 开始,建议为此使用 identity
列。
您可以使用 ALTER TABLE:
将现有列转换为标识列alter table the_table
alter id add generated always as identity;
如果 table 中已有数据,则需要同步序列:
select setval(pg_get_serial_sequence('the_table', 'id'), (select max(id) from the_table));