我们知道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) N

本文介绍了如何在MySQL中模拟Oracle的nextval函数,通过创建序列和自定义函数来获取序列的当前值和下一个值。在Mybatis中使用该方法,并讨论了如何在MySQL的行级锁下确保并发更新的线程安全性。
最低0.47元/天 解锁文章
3539





