oracle中实现自增id

Posted zhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中实现自增id相关的知识,希望对你有一定的参考价值。

在一些数据库(例如mysql)中,实现自增id只要在建表的时候指定一下即可,

但是在oracle中要借助sequence来实现自增id,

要用上自增id,有几种方式:

1.直接在insert语句中使用sequence的nextval。

2.在建表时为字段设置default,这种方式我还没测试。

3.使用触发器,关于触发器的方式,从别人那得到了一个示例,暂且先贴到这里作为备忘。我觉得如果default方式如果可用的话,会比使用触发器的方式简单。

以下是触发器方式相关的代码:

CREATE TABLE STUDENT
(
ID INT NOT NULL,
NAME VARCHAR2(4000) NOT NULL,
PRIMARY KEY(ID)
)
TABLESPACE MYDB;
 
--创建自增ID,名称为:表名_字段名_SEQ
CREATE SEQUENCE sTUDENT_ID_SEQ MINVALUE 1 NOMAXVALUE INCREMENT BY 1 START WITH 1 NOCACHE;
 
 
-- 为Insert操作创建触发器,无需在SQL语句里写NEXTVAL,名称为表名_INS_TRG
CREATE OR REPLACE TRIGGER sTUDENT_INS_TRG BEFORE INSERT ON STUDENT FOR EACH ROW WHEN(NEW.ID IS NULL)
BEGIN
SELECT STUDENT_ID_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
END;

 

未完待续

以上是关于oracle中实现自增id的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Access 中实现自反主键/外键关系?

如何在MySQL中实现自增序列?简单易懂的教程推荐!

sql server建表时怎么设置ID字段自增

sql server建表时怎么设置ID字段自增

在oracle数据库中创建表语句如何写?

oracle怎么实现id自增和设置主键啊