Oracle数据库设置主键自增
在学习mysql时,我们很容易通过auto_increment就能实现主键自增的功能,但是在Oracle数据库中,是没有这个关键字的,所以也不能通过这样来实现主键自增。下面我就为大家介绍两种实现主键自
在学习mysql时,我们很容易通过auto_increment就能实现主键自增的功能,但是在Oracle数据库中,是没有这个关键字的,所以也不能通过这样来实现主键自增。下面我就为大家介绍两种实现主键自增的方法。
方法一:利用序列和显式调用
第一步:创建表
CREATE TABLE YFF (
ID INT primary key,
NAME VARCHAR2(10)
);
第二步:创建序列
create sequence seq_yff
start with 1
increment by 1;
关于序列的其他重要操作:
- 查询序列(利用nextval查询序列下一次的值):
select seq_ from dual; - 删除序列:
DROP SEQUENCE seq_yff;
第三步:利用序列进行自增
insert into YFF values (seq_, '张三');
insert into YFF values (seq_, '李四');
select * from YFF;
方法二:利用序列和触发器
第一步:创建表
CREATE TABLE YFF (
ID INT primary key,
NAME VARCHAR2(10)
);
第二步:创建序列
create sequence seq_yff
start with 1
increment by 1;
第三步:创建触发器
CREATE OR REPLACE TRIGGER trg_yff
BEFORE INSERT ON YFF
FOR EACH ROW
BEGIN
SELECT seq_ INTO FROM dual;
END;
第四步:利用序列和触发器进行自增
insert into YFF values (null, '张三');
insert into YFF values (null, '李四');
select * from YFF;