Oracle实现列的自动增长

1、创建表
create table te(t_id number,t_name varchar(20));
表中有两个字段,分别是t_id、t_name,类型为number和varchar
2、创建序列
create sequence teid ——teid为创建的序列的名称
increment by 1 ——设置每次增长1
start with 1 ——从1开始
nomaxvalue ——没有最大值
nominvalue ——没有最小值
nocache ——不使用缓存
创建序列之后就可以实现自动增长,不过不太智能
测试:
insert into te(t_id,t_name) values(teid.nextval,’liu’);
如果使用这种方法,就不要再创建触发器了
3、创建触发器
create or replace trigger t_teid ——t_teid是创建的触发器的名称
before insert on te for each row ——te是应用触发器的表名
begin
select teid.nextval into :new.t_id from dual;——teid是创建的序列 的名称,t_id是te表中设置自增长的列名
end;
4、测试
insert into te(t_name) values(‘zhang’);——插入一行,t_id自动增长,t_name为’zhang’
注:如果创建了触发器,就不要再使用序列方式增长,否则会出现隔断,就比如前面到3,用序列插入就会直接到5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值