• ADADADADAD

    怎么在mysql中实现sequence功能[ mysql数据库 ]

    mysql数据库 时间:2024-11-28 13:27:38

    作者:文/会员上传

    简介:

    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');
    怎么在mysql中实现sequence功能.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlsequence