方式一:
1.通过sequence实现
2.sql如下:创建表sql和sequence
创建完成sql之后下面是插入数据sql:
效果展示如下:
方式二:
1.通过sequence+触发器实现
2.sql如下:
插入数据sql如下:
注意:这种方式相比上面方式多创建一个触发器,但是插入数据时候不需要sequence.nextval
效果展示如下:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
上面sql截图不太方便,下面是sql源码:
create table stud(
id number,
name varchar2(64),
descr varchar2(256),
primary key(id)
);
create sequence stu_sequence increment by 1 ----每次递增1
start with 1 ----从1开始
nomaxvalue -----没有最大值
minvalue 1 ----最小值1
nocycle ; ----不循环
insert into stud VALUES(stu_sequence.nextval,'陈深','武警特工'); ----stu_sequence.nextval实现自增效果
select * from stud;
----------------------------------------------------------------------
create table stud1(
id number,
name varchar2(64),
descr varchar2(256),
primary key(id)
);
create sequence stu_sequence1 increment by 1 ----每次递增1
start with 1 ----从1开始
nomaxvalue -----没有最大值
minvalue 1 ----最小值1
nocycle ; ----不循环
create or replace trigger t_stud_trigger ----触发器名称,随意起
before insert on stud1 ---创建的表名
for each row
when(new.id is null) ----id主键
begin
select stu_sequence1.nextval into:NEW.ID from dual; ---stu_sequence(序列名字) NEW.ID(ID主键)
end ;
insert into stud1(name,descr) values('娜可露露','保护我方打野');
insert into stud1(name,descr) values('不知火舞','保护我方输出');
select * from stud1;
来源:CSDN
作者:一曲、凤求凰
链接:https://blog.csdn.net/royal1235/article/details/104062285