mysql通过表和function模拟oracle的sequence
1、新建表
CREATE TABLE `sequence` ( `seq_name` varchar(45) NOT NULL COMMENT ‘sequence名‘, `seq_value` bigint(20) NOT NULL COMMENT ‘sequence值‘, `increment` int(3) NOT NULL DEFAULT ‘1‘ COMMENT ‘步进‘, PRIMARY KEY (`seq_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
2、插入初始数据
INSERT INTO `sequence` VALUES (‘SEQ_CERT‘, ‘26‘, ‘1‘);
3、编写function
delimiter // CREATE FUNCTION nextValue (s varchar(50)) RETURNS int(10) BEGIN DECLARE r integer; set r = 0; update sequence set seq_value = seq_value + increment where seq_name = s; select seq_value into r from sequence where seq_name = s; return r; END // delimiter ;
4、然后就可以使用function获取数据。
select nextValue(‘SEQ_CERT‘);
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。