Oracle數(shù)據(jù)庫設(shè)置主鍵自增
在學(xué)習(xí)mysql時,我們很容易通過auto_increment就能實現(xiàn)主鍵自增的功能,但是在Oracle數(shù)據(jù)庫中,是沒有這個關(guān)鍵字的,所以也不能通過這樣來實現(xiàn)主鍵自增。下面我就為大家介紹兩種實現(xiàn)主鍵自
在學(xué)習(xí)mysql時,我們很容易通過auto_increment就能實現(xiàn)主鍵自增的功能,但是在Oracle數(shù)據(jù)庫中,是沒有這個關(guān)鍵字的,所以也不能通過這樣來實現(xiàn)主鍵自增。下面我就為大家介紹兩種實現(xiàn)主鍵自增的方法。
方法一:利用序列和顯式調(diào)用
第一步:創(chuàng)建表
CREATE TABLE YFF (
ID INT primary key,
NAME VARCHAR2(10)
);
第二步:創(chuàng)建序列
create sequence seq_yff
start with 1
increment by 1;
關(guān)于序列的其他重要操作:
- 查詢序列(利用nextval查詢序列下一次的值):
select seq_ from dual;
- 刪除序列:
DROP SEQUENCE seq_yff;
第三步:利用序列進(jìn)行自增
insert into YFF values (seq_, '張三');
insert into YFF values (seq_, '李四');
select * from YFF;
方法二:利用序列和觸發(fā)器
第一步:創(chuàng)建表
CREATE TABLE YFF (
ID INT primary key,
NAME VARCHAR2(10)
);
第二步:創(chuàng)建序列
create sequence seq_yff
start with 1
increment by 1;
第三步:創(chuàng)建觸發(fā)器
CREATE OR REPLACE TRIGGER trg_yff
BEFORE INSERT ON YFF
FOR EACH ROW
BEGIN
SELECT seq_ INTO FROM dual;
END;
第四步:利用序列和觸發(fā)器進(jìn)行自增
insert into YFF values (null, '張三');
insert into YFF values (null, '李四');
select * from YFF;