列Oracle中设置自增列的简易操作(oracle中设置自增)

Oracle中通过 Sequence 和 Trigger可以实现自增列,以下内容将针对两种实现方式进行详细介绍,并结合具体代码给出示例。

## Sequence

Oracle提供了序列(Sequence)类型�为了实现自增列,可以使用Sequence来实现,以下为Oracle Sequence使用示例:

CREATE SEQUENCE seq_student
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
NOCACHE;

CREATE TABLE student
(id NUMBER PRIMARY KEY,
name VARCHAR2(20));

INSERT INTO student
SELECT seq_student.nextval, 'Alice' FROM DUAL;
INSERT INTO student
SELECT seq_student.nextval, 'Bob' FROM DUAL;
SELECT *
FROM student;
-- Result
-- ID NAME
-- 1 Alice
-- 2 Bob

## Trigger

使用Trigger可以确保当表中插入记录时,自动为该条记录设置主键值。创建Trigger的步骤如下:

1. 创建Sequence

CREATE SEQUENCE seq_student
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
NOCACHE;

2. 创建Table

CREATE TABLE student 
(id NUMBER PRIMARY KEY,
name VARCHAR2(20));

3.创建Trigger

CREATE OR REPLACE TRIGGER trigger_student
BEFORE INSERT
ON student
FOR EACH ROW
BEGIN
SELECT seq_student.nextval
INTO: new.id
FROM dual;
END;
/

4. 插入数据

INSERT INTO student 
(name) VALUES ('Alice');

INSERT INTO student
(name) VALUES ('Bob');
SELECT *
FROM student;
-- Result
-- ID NAME
-- 1 Alice
-- 2 Bob

使用Oracle Sequence和Trigger可以实现自增主键。实现自增键以Sequence为主,在不传入主键值的情况下,Trigger可作为Sequence的扩展,以提升应用安全性。


数据运维技术 » 列Oracle中设置自增列的简易操作(oracle中设置自增)