mysql通过表和function模拟oracle的sequence

来源:互联网 发布:淘宝发布宝贝没有尺码 编辑:程序博客网 时间:2024/05/22 12:55

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');


0 0
原创粉丝点击