欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;

mysql/Oracle实现自增主键


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;

mysql/Oracle实现自增主键

5.注意事项

序列共享,所以如果多张表都需要自增主键时,需要分别创建并使用独立的序列。