MySQL增加Sequence管理功能
来源:互联网 发布:hadoop元数据是什么 编辑:程序博客网 时间:2024/05/18 03:47
由于mysql和oracle不太一样,不支持直接的sequence,所以需要创建一张table来模拟sequence的功能,似乎每个sequence一张表
第一步:创建--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 ;
当上述四步完成后,可以用以下数据设置需要创建的sequence名称以及设置初始值和获取当前值和下一个值。
INSERT INTO sequence VALUES ('TestSeq', 0, 1);----添加一个sequence名称和初始值,以及自增幅度
SELECT SETVAL('TestSeq', 10);---设置指定sequence的初始值
SELECT CURRVAL('TestSeq');--查询指定sequence的当前值
SELECT NEXTVAL('TestSeq');--查询指定sequence的下一个值
0 0
- MySQL 增加 Sequence 管理功能
- MySQL增加Sequence管理功能
- MySQL增加Sequence管理功能
- MySQL增加Sequence管理功能
- mysql 增加sequence
- emacs23 增加包管理功能
- mysql实现oracle sequence功能
- 为redhat增加apt包管理功能
- 给ecshop后台增加管理功能页面
- 给ecshop后台增加管理功能页面
- 增加Ueditor在线管理图片删除功能
- Django站点管理--ModelAdmin 增加搜索功能
- 用mysql实现oracle sequence功能
- 用mysql实现oracle sequence功能
- mysql 实现oracle中sequence 功能
- chat聊天室增加mysql记录功能
- jsp+mysql实现增加,查看功能
- MYSQL增加用户 并管理特定表
- mac:在当前文件中打开终端
- SD
- 从微信自定义菜单说php json_encode不转义中文汉字的方法
- 红包随机算法
- Android初学------系统设置之设置输入法
- MySQL增加Sequence管理功能
- 火爆的股票配资有这三方面风险
- 分页性能探索-mysql
- 08_Java基础_内部类_静态导入_增强for循环
- 交叉编译GDB
- leetcode | Merge Sorted Array
- sap 提交后台作业
- java网络编程Socket学习(一)
- android文件保存到sd卡和内存