怎么在mysql中实现sequence功能
这篇文章将为大家详细讲解有关怎么在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功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。