这篇文章将为大家详细讲解有关怎么在mysql中实现sequence功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

mysql实现sequence功能

1.建立sequence记录表

CREATETABLE`sys_sequence`(`seq_name`varchar(50)CHARACTERSETlatin1COLLATElatin1_binNOTNULL,`min_value`int(11)NOTNULL,`max_value`int(11)NOTNULL,`current_value`int(11)NOTNULL,`increment_value`int(11)NOTNULLDEFAULT'1',PRIMARYKEY(`seq_name`))ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_bin;

2.建立sequence基础函数

DELIMITER$$CREATEDEFINER=`root`@`%`FUNCTION`_nextval`(namevarchar(50))RETURNSint(11)begindeclare_curint;declare_maxvalueint;--接收最大值declare_incrementint;--接收增长步数set_increment=(selectincrement_valuefromsys_sequencewhereseq_name=name);set_maxvalue=(selectmax_valuefromsys_sequencewhereseq_name=name);set_cur=(selectcurrent_valuefromsys_sequencewhereseq_name=name);updatesys_sequence--更新当前值setcurrent_value=_cur+increment_valuewhereseq_name=name;if(_cur+_increment>=_maxvalue)then--判断是都达到最大值updatesys_sequencesetcurrent_value=min_valuewhereseq_name=name;endif;return_cur;end$$DELIMITER;

3.插入想要建立的sequence

INSERTINTO`mydb`.`sys_sequence`(`seq_name`,`min_value`,`max_value`,`current_value`,`increment_value`)VALUES('seq_name1',1,99999999,1,1);

4.使用sequence

select_nextval('seq_name1');

关于怎么在mysql中实现sequence功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。