oracle利用触发器实现主键字段自增
2024-08-26 09:37:19
我们都知道oracle主键自增利用的是序列sequence。我们先创建一个sequence:
create sequence test_sequence
start with 1
increment by 1
maxvalue 9999999
nocache
然后新建一张表,例如te_user表:
create table te_user(
user_id number(11) primary key,
user_name varchar2(50),
user_pwd varchar2(50)
)
如果不用trigger的话,我们插入数据是用到了sequence的nextval属性,例如:
insert into te_user values(test_sequence.nextval,'张三','')
或者
insertinto te_user(user_id,user_name,user_pwd) values(test_sequence.nextval,'李四','')
那么如果我们定义了trigger的话,就不需要每次都带入sequence来实现了,新建一个trigger来实现这一目的:
create or replace trigger test_trigger before insert
on te_user
for each row
declare
next_user_id number;
begin
select test_sequence into next_user_id from dual;
:new.user_id :=next_user_id;
end test_trigger
这样每次te_user表的insert操作都会触发此触发器,我们再进行表插入时只需要:
insert into te_user(user_id,user_pwd) values ('王五','')
就可以了。
最新文章
- AtomicBoolean介绍与使用
- memcache入门笔记
- C和指针 第十二章 使用结构和指针
- js 0.1+0.2!=0.3
- ClientAbortException 异常解决办法
- easyui combobox 中实现 checkbox
- 利用API方式进行数据库的增删改查
- 生成中文版JavaDoc
- Eclipse报错 Unable to execute dex: Multiple dex files define Lcom/kenai/jbosh/AbstractAttr
- ntoskrnl.exe损坏或丢失的解决方式
- 3036: 绿豆蛙的归宿 - BZOJ
- 安装64位的oracle连接客户端
- getuid和geteuid的区别
- linux之sed的常用操作
- HBuilder的webview操作
- js函数的使用
- mysql-cluster集群配置
- Java面试题精选,大型网站系统架构你不得不懂的10个问题
- JavaScript使用childNodes和children
- RadGridView添加序号列
热门文章
- 铰链joints
- DBCP连接池原理分析(转载)
- 在Linux中安装适用于arm64位的nodejs
- Luogu P1114 “非常男女”计划/Luogu P2697 宝石串
- VUE this.$http.post 与后端flask 数据交互
- Python通过yagmail和smtplib模块发送简单邮件
- django Error: HINT: Add or change a related_name argument to the definition for 'UserProfile.groups' or 'User.groups'.
- kombu在redis中的键值名
- Java的浅克隆与深克隆
- trigger 和 triggerHandler(),自定义事件