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

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_insert

before insert on tb1       --插入前触发for each row              --行级触发器declare

id 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列数据是自动输入的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值