通过脚本使列自动递增[重复]
Posted
技术标签:
【中文标题】通过脚本使列自动递增[重复]【英文标题】:Making an column auto increment through script [duplicate] 【发布时间】:2014-08-01 09:50:55 【问题描述】:我对@987654322@ 环境并不陌生。我有一个以下脚本可以创建包含几列的表。
CREATE TABLE CLASS_STUDENT_LECTURES_MAP(
STUDENT_LECTURES_ID NUMBER(38,0) NOT NULL,
STUDENT_CODE NUMBER(38,0) NOT NULL,
STUDENT_NAME_DEFINATION_ID NUMBER(38,0) NOT NULL,
CONSTRAINT STUDENT_LECTURES_ID _PK PRIMARY KEY (STUDENT_LECTURES_ID)
);
我想要的是使Primary Key
列STUDENT_LECTURES_ID
成为自动递增列,这可以通过上面的sql 脚本实现吗?
与SQL Server
一样,您可以指定IDENTITY(1,1)
以使列自动递增。 oracle 有这样的选择吗?
【问题讨论】:
***.com/questions/11296361/… 【参考方案1】:在 oracle 中不能以直接的方式完成自动增量。您将不得不使用一种解决方法:
-
创建表格
CREATE TABLE CLASS_STUDENT_LECTURES_MAP(
STUDENT_LECTURES_ID NUMBER(38,0) NOT NULL,
STUDENT_CODE NUMBER(38,0) NOT NULL,
STUDENT_NAME_DEFINATION_ID NUMBER(38,0) NOT NULL,
CONSTRAINT STUDENT_LECTURES_ID _PK PRIMARY KEY (STUDENT_LECTURES_ID)
);
2.. 创建序列:
CREATE SEQUENCE INCREMENT_SEQ START WITH 1
INCREMENT BY 1
NOCACHE
NOCYCLE;
3.. 创建触发器:
`CREATE OR REPLACE TRIGGER table_a_BEFORE_INSERT_TRIGGER
BEFORE INSERT ON table_a
FOR EACH ROW
BEGIN
SELECT increment_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
/`
4.. 使用插入查询进行测试:
INSERT INTO CLASS_STUDENT_LECTURES_MAP ( STUDENT_CODE, STUDENT_NAME_DEFINATION_ID)
VALUES
(10,20);
【讨论】:
以上是关于通过脚本使列自动递增[重复]的主要内容,如果未能解决你的问题,请参考以下文章