1.創建一個儲值表:存儲每次自增後的最新值,用於讀取
CREATE TABLE `sequence` (
`name` VARCHAR(50) NOT NULL, //自增名
`current_value` INT(11) NOT NULL, //自增的最新值
`increment` INT(11) NOT NULL DEFAULT '1' //每次的增量
)
2.創建自增函數:
參數:自增表的name
返回:下一個自增值
CREATE DEFINER=`root`@`%` FUNCTION `sequence_nextval`(
`seq_name` VARCHAR(50)
)
RETURNS int(11)
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT '獲取下一個值'
BEGIN
DECLARE VALUE INTEGER;
SET VALUE = 0;
UPDATE sequence SET current_value = current_value + increment WHERE NAME = seq_name;
SELECT current_value INTO VALUE FROM sequence WHERE NAME = seq_name;
RETURN VALUE;
END
3.調用:
SELECT sequence_nextval(#{name})
4.示例:
查詢:
歡迎加Q討論:361528529