通过脚本使列自动递增[重复]

Posted

技术标签:

【中文标题】通过脚本使列自动递增[重复]【英文标题】:Making an column auto increment through script [duplicate] 【发布时间】:2014-08-01 09:50:55 【问题描述】:

我对@9​​87654322@ 环境并不陌生。我有一个以下脚本可以创建包含几列的表。

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 KeySTUDENT_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);

【讨论】:

以上是关于通过脚本使列自动递增[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP - 如何使用自动增量更新表(值++)[重复]

使用引导程序使列居中 [重复]

使列充满QTableWidget的整个宽度[重复]

Oracle自动增量[重复]

导入 SQL 文件时自动递增

从表中删除后自动递增[重复]