我们知道mysql中是不支持sequence的,一般是建表的时间使这个字段自增。
如 create table table_name(id int auto_increment primary key, ...);
或者alter table table_ame add id int auto_increment primary key //字段,一定设置为primary key
或者重设自增字段的起步值 alter table table_name AUTO_INCREMENT=n
但是我们在oracle中经常使用sequence_name.nextval,或者在程序中我们使用先select sequence_name.value from dual。如果我们的开发框架要同时支持oracle和mysql,一般会把取sequence提出来。如果在mysql中提供一个类似的函数,这样提出来会比较方便些。这是一种使用的场景。下面就说说怎么在mysql中实现一个nextval函数吧。
1,新建序列表
CREATE TABLE `sequence` (
`name` varchar(50) NOT NULL, -- 序列名称
`current_val` int(11) NOT NULL, -- 当前值
`increment_val` int(11) NOT NULL DEFAULT '1