mysql/Oracle实现自增主键

目录

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,oracle)