如何在PostgreSQL中将自增主键起始值设置为指定固定值
MySQL自增起始值设置对应PostgreSQL的实现写法
你提到的MySQL修改自增起始值命令为:
ALTER TABLE tablename AUTO_INCREMENT = 1000
PostgreSQL的自增主键逻辑依赖*序列(sequence)*实现,对应实现有两种常用方式:
方式1:直接修改关联序列(兼容所有PostgreSQL版本)
默认情况下,使用serial类型定义的自增主键会自动生成格式为表名_字段名_seq的关联序列,直接修改该序列的起始值即可:
ALTER SEQUENCE tablename_id_seq RESTART WITH 1000;
如果不确定对应序列名,可执行如下查询获取:
SELECT pg_get_serial_sequence('tablename', 'id');
将查询得到的序列名替换到上述ALTER SEQUENCE语句中即可。
方式2:直接修改表字段(仅适用于PostgreSQL 10及以上版本)
如果是使用GENERATED AS IDENTITY定义的标准自增主键,可以直接修改字段属性:
ALTER TABLE tablename ALTER COLUMN id RESTART WITH 1000;
内容的提问来源于stack exchange,提问作者Dhairya Lakhera
相关产品推荐
相关产品推荐

