oracle设置触发器自增长,创建Oracle触发器用于表中序列值自增长(Helloblock写作)...

创建Oracle触发器用于表中序列值自增长(Helloblock写作)

SQL> conn scott/oracle

使用scott用户操作,不要使用sys帐号操作。

1、创建一张测试表tb1:

SQL> create table tb1(id int primary key,

name varchar2(20)

);

2、创建序列seq_id:

SQL> create sequence seq_id

minvalue 1                 --最小值start with 1                 --初始值

increment by 2              --每次增长量

maxvalue 999999999999     --最大值

nocache                    --序列不放在缓存中

nocycle;                    --序列不循环

3、查看序列是否可用:

SQL> select seq_id.nextval from dual;

NEXTVAL

----------

1

4、创建行级触发器:

SQL> create or replace trigger tri_tb1_insertbefore insert on tb1       --插入前触发for each row              --行级触发器declareid int;begin--1:                  --获取一个序列号dbms_output.put_line('----------');select seq_id.nextval into id from dual;:new.id:=id;--2:                  --把序列号添加到即将插入的表中end;

/

5、测试触发器是否可以实现序列号自增长:

SQL> insert into tb1(name) values('zhangsan');

1 row created.

SQL> select * from tb1;

ID NAME

---------- ----------------------------------------

3 zhangsan

SQL> insert into tb1(name) values('lisi');

1 row created.

SQL> select * from tb1;

ID NAME

---------- ----------------------------------------

3 zhangsan

5 lisi

看到tb1表中的id列数据是自动输入的。

mail:helloblock@126.com

QQ:1654294099

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值