mysql自定义sequence
程序员文章站
2024-02-02 12:50:10
...
1.创建自定义sequence表
CREATE TABLE t_seq ( `seq_name` varchar(50) NOT NULL DEFAULT '' COMMENT 'sequence名称', `start_value` int(11) DEFAULT '1' COMMENT '开始数(默认为1)', `increment_value` int(11) DEFAULT '1' COMMENT '增量数(默认为1)', PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自定义 sequence 表';
2.插入一条sequence信息
INSERT INTO `t_seq` (`seq_name`, `start_value`, `increment_value`) VALUES ('seq_t_user', '1', '1');
3.定义nextval函数,对开始数进行增量计算,返回sequence值
CREATE FUNCTION `nextval`(str varchar(50)) RETURNS int(11) begin declare i int; set i=(select start_value from t_seq where name=str); update t_seq set start_value=i+increment_value where name=str; return i; end
4.测试sequence取值
select nextval("seq_t_user") from dual;