oracle数据库设置主键自增
时间: 2023-08-29 20:07:56 浏览: 138
在Oracle中,可以使用序列(Sequence)来实现主键自增。序列是一种数据库对象,可以生成唯一的数字序列。可以在创建表时,使用序列来给主键字段赋默认值,从而实现主键自增的功能。
以下是一个使用序列实现主键自增的示例:
1. 首先创建一个序列,用于生成唯一的数字序列。例如:
```
CREATE SEQUENCE seq_students_id
START WITH 1
INCREMENT BY 1
MAXVALUE 99999999
MINVALUE 1
NOCACHE
NOCYCLE;
```
这个序列名为`seq_students_id`,从1开始,每次增加1,最大值为99999999,最小值为1,不缓存序列值,不循环。
2. 在创建表时,使用序列的`NEXTVAL`函数给主键字段赋默认值。例如:
```
CREATE TABLE students (
id INT DEFAULT seq_students_id.NEXTVAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
sex VARCHAR(10) NOT NULL,
age INT NULL,
tel VARCHAR(20) NULL
);
```
这里将id字段的默认值设置为`seq_students_id.NEXTVAL`,也就是每次插入数据时,id字段会自动从序列中获取一个唯一的数字作为主键值。
注意,使用序列自增主键时,需要确保序列的起始值和表中已有数据的最大值不冲突,否则会导致主键冲突的错误。
阅读全文