pgsql已有表设置主键自增

1.创建序列:

CREATE SEQUENCE tablename_id_seq

START WITH 1

INCREMENT BY 1

NO MINVALUE

NO MAXVALUE

CACHE 1;

2.创建或修改表,添加自增主键约束(已有主键则无需此步骤)

ALTER TABLE your_table

ADD PRIMARY KEY (column_name);

3.设置列的默认值为序列的下一个值

ALTER TABLE your_table

ALTER COLUMN column_name SET DEFAULT nextval('tablename_id_seq');

4.删除自增序列

DROP SEQUENCE [ IF EXISTS ] sequence_name [ CASCADE | RESTRICT ];

  • equence_name 是你想要删除的序列的名称。

  • IF EXISTS 是一个可选参数,如果指定了该参数,在序列不存在时不会触发错误。

  • CASCADE 关键字会自动删除依赖于该序列的对象。

  • RESTRICT 关键字(默认设置)阻止在其他对象依赖该序列时删除序列。

相关推荐
当战神遇到编程几秒前
关系型数据库设计基础:约束、三大范式、表关系与表设计流程
数据库
其实防守也摸鱼8 分钟前
《SQL注入进阶实验:基于sqli-Labs的报错注入(Error-Based Injection)实战解析》
网络·数据库·sql·安全·网络安全·sql注入·报错注入
Ting.~10 分钟前
软件设计师备考笔记【day3】-数据库
数据库·笔记
Bert.Cai10 分钟前
MySQL FLOOR()函数详解
数据库·mysql
小碗羊肉18 分钟前
【MySQL | 第七篇】索引
数据库·mysql
m0_4954964124 分钟前
SQL中如何获取前N个最大值并排除自己_利用窗口函数限制
jvm·数据库·python
m0_7406532224 分钟前
mysql如何提取日期中的年份_使用year函数从日期中截取
jvm·数据库·python
hanyi_qwe30 分钟前
Mysql 与 Nginx 双机高可用
数据库·mysql·nginx
S1998_1997111609•X32 分钟前
login:/-system.web,dex.dmp,b-scode:app·%
网络·数据库·百度·facebook·twitter
运气好好的34 分钟前
mysql数据库日志文件过大如何清理_定期备份与重置日志文件
jvm·数据库·python