Oracle通过序列实现主键自增长
序列化+触发器#
一般选这种
只要建立好序列化+触发器,触发器会在我们插入数据时自动触发,帮助我们进行+1操作。
创建序列sequence,指定
//准备工作创建一张表 create table dept_p( dept_id VARCHAR2(40) not null, dept_name VARCHAR2(40), parent_id VARCHAR2(40), state NUMBER(11), dept_sort NUMBER(11) ); alter table DEPT_P add [constraint dept_id] primary key(dept_id);
创建序列
create sequence seq_t_dept minvalue 1 maxvalue 99999999 start with 1 increment by 1 cache 50
建立触发器
create or replace trigger "dept_trig" before insert on dept_p referencing old as old new as new for each row declare begin select seq_t_dept.nextval into :new.dept_sort from dual; end dept_trig;
此时报错:ORA-04089:无法对SYS拥有额对象创建触发器
那么只能再建一个公用账户,并赋予connect和resource角色来创建触发器
create user c##lyc identified by root; grant connect, resource to c##lyc;
然后使用新建的用户登陆执行该指令
序列化+显式调用序列化#
-- 创建sequence create sequence seq_on_dept increment by 1 start with 1 nomaxvalue nocycle nocache;
显式调用序列
insert into dept_p values('001', '安保部', '000', 1, seq_on_dept.nextval);
作者:BigBender
出处:https://www.cnblogs.com/BigBender/p/14631595.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
Oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2020-04-08 mysql 导出和导入数据
2020-04-08 tp5 数据库迁移工具 migrate&seed
2020-04-08 tp5模型一对一关联hasOne
2020-04-08 tp5文件上传
2020-04-08 tp5 获得当前表插入的最新自增id
2020-04-08 php-swagger安装和使用
2020-04-08 阿里巴巴人脸识别接口--phpsdk