给 MySQL 增加 Sequence 管理功能
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                给 MySQL 增加 Sequence 管理功能
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            -- Sequence 管理表 DROP TABLE IF EXISTS sequence; CREATE TABLE sequence ( 	name VARCHAR(50) NOT NULL, 	current_value INT NOT NULL, 	increment INT NOT NULL DEFAULT 1, 	PRIMARY KEY (name) ) ENGINE=InnoDB;  -- 取當前值的函數(shù) DROP FUNCTION IF EXISTS currval; DELIMITER $ CREATE FUNCTION currval (seq_name VARCHAR(50)) 	RETURNS INTEGER 	LANGUAGE SQL 	DETERMINISTIC 	CONTAINS SQL 	SQL SECURITY DEFINER 	COMMENT '' BEGIN 	DECLARE value INTEGER; 	SET value = 0; 	SELECT current_value INTO value 		FROM sequence 		WHERE name = seq_name; 	RETURN value; END $ DELIMITER ;  -- 取下一個值的函數(shù) DROP FUNCTION IF EXISTS nextval; DELIMITER $ CREATE FUNCTION nextval (seq_name VARCHAR(50)) 	RETURNS INTEGER 	LANGUAGE SQL 	DETERMINISTIC 	CONTAINS SQL 	SQL SECURITY DEFINER 	COMMENT '' BEGIN 	UPDATE sequence 		SET current_value = current_value + increment 		WHERE name = seq_name; 	RETURN currval(seq_name); END $ DELIMITER ;  -- 更新當前值的函數(shù) DROP FUNCTION IF EXISTS setval; DELIMITER $ CREATE FUNCTION setval (seq_name VARCHAR(50), value INTEGER) 	RETURNS INTEGER 	LANGUAGE SQL 	DETERMINISTIC 	CONTAINS SQL 	SQL SECURITY DEFINER 	COMMENT '' BEGIN 	UPDATE sequence 		SET current_value = value 		WHERE name = seq_name; 	RETURN currval(seq_name); END $ DELIMITER ;  /* -- 測試 INSERT INTO sequence VALUES ('TestSeq', 0, 1); SELECT SETVAL('TestSeq', 10); SELECT CURRVAL('TestSeq'); SELECT NEXTVAL('TestSeq'); */
 
                        
                        
                        轉(zhuǎn)載于:https://www.cnblogs.com/shihao/archive/2012/02/14/2351045.html
總結(jié)
以上是生活随笔為你收集整理的给 MySQL 增加 Sequence 管理功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: linux下的pdf分割合并软件
- 下一篇: WPF之布局
