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) begin declare_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_value whereseq_name=name; if(_cur+_increment>=_maxvalue)then--判断是都达到最大值 updatesys_sequence setcurrent_value=min_value whereseq_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');
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接