给 MySQL 增加 Sequence 管理功能
2012-02-14 14:31
260 查看
-- 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; -- 取当前值的函数 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 ; -- 取下一个值的函数 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 ; -- 更新当前值的函数 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'); */
相关文章推荐
- 【转】给 MySQL 增加 Sequence 管理功能
- MySQL增加Sequence管理功能
- 给 MySQL 增加 Sequence 管理功能
- MySQL增加Sequence管理功能
- 给MySQL增加Sequence管理功能
- 【转】MySQL中增加sequence管理功能(模拟创建sequence)
- MySQL 增加 Sequence 管理功能
- MySQL增加Sequence管理功能
- MySQL增加Sequence管理功能
- NET快速信息化系统开发框架 V3.2 -> “用户管理”主界面使用多表头展示、增加打印功能
- MySQL 5.7功能增加或更改(官方文档)
- mysql可视化管理工具sqlYog常使用功能
- 给ecshop后台增加管理功能页面
- 网络管理解决方案Axence nVision更新至v9.3,增加新的“打印”功能
- 增加dedecms后台留言管理功能
- jsp+mysql实现增加,查看功能
- 经济核算工艺管理系统又增加功能
- ssh之雇员管理系统(8)-增加其他功能
- mysql可视化管理工具sqlYog常使用功能
- C#.NET通用权限管理系统组件中数据集权限设置功能增加内部组织机构选项功能