oracle主键自增 创建多个触发器

在Oracle中,由于没有直接的 AUTO_INCREMENT 功能,需要通过创建Sequence和触发器来实现主键自增。每个表最好对应一个Sequence以确保主键连续性。在创建触发器时,需要注意触发器语法的细节,如是否在末尾添加'/',因为这可能影响到触发器的正确创建和执行。如果不加'/',可能导致触发器错误,需要手动处理结束语句。
摘要由CSDN通过智能技术生成

问题:

最近修改项目的sql脚本,新增几张表,其中三个表需要属性自增,mySql中可以直接用AUTO_INCREMENT,oracle没有做自增功能,需要手动写触发器实现自增功能。在网上找到了解决方案。贴出来供大家参考:

解决方案:1.首先创建表

CREATE TABLE eip_monitor_statistics 
(
	pk INT NOT NULL, 
	system_pk char(36),
	service_pk char(36),
	system_name VARCHAR2(300),
	corppk CHAR(36),
	PRIMARY KEY (pk)
 ) 
 ;

2.创建sequence

create sequence monitor_statistics_seq 
minvalue 1 
maxvalue 99999999    
increment by 1
start with 1
;
3.创建触发器
create or replace trigger monitor_statistics_tri      
before  insert or update on eip_monitor_statistics   
for each row WHEN (new.pk is null)       
begin     
select  monitor_statistics_seq.n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值