mysql数据库是不支持自增长设置的,但是在我们平时的项目中经常会用到自增长设置,那么怎么来实现该功能呢?
我们可以通过创建sequence表和sequence函数来实现这一功能:
第一步:创建tb_sequence表
CREATE TABLE `tb_sequence` (
`name` varchar(50) NOT NULL COMMENT '自增长字段名',
`start_value` varchar(11) NOT NULL COMMENT '起始值',
`current_value` int(11) NOT NULL COMMENT '当前值',
`_increment` int(11) NOT NULL DEFAULT '1' COMMENT '每次增加值',
PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
第二部:创建_nextval函数:
CREATE DEFINER=`root`@`localhost` FUNCTION `_nextval`(n varchar(50)) RETURNS int(11)
begin
declare _cur int;
set _cur=(select current_value from tb_sequence where name= n);
update tb_sequence
set current_value = _cur + _increment
where name=n ;
return _cur;
end
第三步:在项目中调用_nextval函数
SELECT _nextval('pub') as current_value