Oracle数据库表主键自增长实现
Oracle数据库不像MySQL数据库和SQLServer一样,表主键自增长,通过一个建表语句属性配置即可实现,所以Oracle数据库主键自增长如何实现那呢?
解决方案
l 创建序列
CREATE SEQUENCE SEQ_STU
INCREMENT BY 1 --ID每次自增几
START WITH 1 --ID从几开始自增
MAXVALUE 99999 --ID的最大值
MINVALUE 1; --ID的最小值
l 创建触发器(在新增数据一条时取序列的下一个值作为主键值)
CREATE OR REPLACE TRIGGER TIGGER_STU
BEFORE
INSERT ON classinfo
FOR EACH ROW
WHEN(NEW.classid IS NULL) --触发条件(如果没有的话,就都可以触发)
BEGIN
SELECT SEQ_STU.NEXTVAL INTO:NEW.classid FROM DUAL;
END;
l 注意事项:
实现表主键增长时候,创建序列的和触发器的时候要注意,
如果表里已经有数据了,可能序列新值的数据与表中的值冲突,
违反唯一约束条件,需要先清空表数据,在创建序列和触发器
分类:
Oracle数据库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?