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
Oracle实现列的自动增长
最新推荐文章于 2024-09-27 11:31:35 发布