mysql/Oracle实现自增主键
程序员文章站
2022-04-21 10:22:26
...
目录
Mysql实现自增主键
1.建表
CREATE TABLE clh_test1
(`id` INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(8) NULL,
`age` INT NULL
)auto_increment = 1
;
2.插入数据
insert into clh_test1 values(NULL,'tom',23);
insert into clh_test1 values(NULL,'bob',22);
3.查看数据
select * from clh_test1;
Oracle实现自增主键
相比Mysql,Oracle实现自增主键较复杂,需要使用到sequence序列以及触发器,具体实现如下:
1.建表
CREATE TABLE ALIEN_APYIV1
(
ID INTEGER NOT NULL /** primary key */,
NAME VARCHAR(20) NOT NULL,
AGE INTEGER NOT NULL,
SEX VARCHAR(2) NOT NULL,
ACTIVE VARCHAR(8) NOT NULL,
CONSTRAINT PK_ALIEN_APYIV1 PRIMARY KEY (ID)
);
2.创建序列
CREATE SEQUENCE alien_sequence
INCREAMENT BY 1 --每次增长1
START WITH 1 --从1开始自增
NOMAXVALUE --不设置序列生成器的最大值
NOCYCLE ; --序列生成器的值达到限制值后停止循环
3.创建触发器
CREATE TRIGGER alien_increase BEFORE
INSERT ON alien_apyiv1 FOR EACH ROW
begin
select alien_sequence.nextval into:New.ID from dual;
end;
4.插入数据查看效果
insert into ALIEN_APYIV1 values(NULL,'tom',23,'男','aaa');
insert into ALIEN_APYIV1 values(NULL,'bob',23,'男','bbb');
SELECT * FORM ALIEN_APYIV1;
5.注意事项
序列共享,所以如果多张表都需要自增主键时,需要分别创建并使用独立的序列。
上一篇: MySQL自增和主键的报错
下一篇: 1-9 最长连续递增子序列 (20分)