12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
mysql数据库 时间:2024-11-28 13:27:38
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
mysql实现sequence功能1.建立sequence记录表CREATETABLE`sys_sequence`(`seq_name`varchar(50)CHARACTERSETlatin1COLLATElatin1_binNOTNULL,`min_value`int(11)NOTNULL,`ma
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
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');
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19