一、Oracle 本身存在 sequence 实体,可以直接创建,如:
CREATE sequence xxx_SEQ
minvalue 1
maxvalue 999999
start with 1
increment by 1
cache 20
cycle;
执行语句得到序列的下一个值:
SELECT xxx_SEQ.NEXTVAL FROM DUAL
二、MYSQL ,不存在 sequence 。 需要仿照,
1、建立一个自增表
CREATE TABLE xxx_SEQ_table (
id INT(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id)
) ;
2、建立一个函数
CREATE FUNCTION xxx_SEQ_nextval() RETURNS INT
BEGIN
INSERT INTO xxx_SEQ_table (id) VALUES (NULL);
RETURN LAST_INSERT_ID();
END;
3、执行语句得到序列的下一个值:
SELECT xxx_SEQ_nextval()
三、Guass,创建 sequence 与 Oracle 一样
CREATE sequence xxx_SEQ
minvalue 1
maxvalue 999999
start with 1
increment by 1
cache 20
cycle;
执行语句得到序列的下一个值:
SELECT xxx_SEQ.NEXTVAL