参考自菜鸟教程

使用函数创建自增序列管理表(批量使用自增表,设置初始值,自增幅度)

第一步:创建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;

第二步:创建取当前值的函数 currval

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 ;

第三步:创建取下一个值的函数 nextval

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;

第四步:创建更新当前值的函数 setval

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名称和初始值,以及自增幅度 添加一个名为TestSeq 的自增序列

SELECT SETVAL('TestSeq', 10);

---设置指定sequence的初始值 这里设置TestSeq 的初始值为10

SELECT CURRVAL('TestSeq');

--查询指定sequence的当前值 这里是获取TestSeq当前值

SELECT NEXTVAL('TestSeq');

--查询指定sequence的下一个值 这里是获取TestSeq下一个值

标签:name,TestSeq,sequence,SQL,value,oracle,mysql,序列,seq

来源: https://www.cnblogs.com/internHe/p/12951259.html

mysql实现类似oracle的序列,mysql 创建[序列],功能类似于oracle的序列相关推荐

  1. 创建达梦到Oracle的DBLINK(OCI方式)

    应用场景: 因业务需求:oracle作为目地端,DM作为使用端,需要在达梦里创建到oracle的dblink连接.以下为实操记录.推荐达梦DBLINK使用Oralce OCI的方式去访问Oracle数 ...

  2. MySQL实现类似Oracle的序列

    MySQL实现类似Oracle的序列 2013-10-22 10:33:35     我来说两句       作者:走过的足迹 收藏    我要投稿 MySQL实现类似Oracle的序列 Oracle ...

  3. mysql 类似oracle,mysql – 制作类似于Oracle的seqences的机制

    MySQL提供了一种增加记录ID的自动机制.这可以用于许多目的,但我需要能够使用ORACLE提供的序列.显然,为此目的创建表是没有意义的. 解决方案应该很简单: 1)创建一个表来托管所有需要的序列, ...

  4. Oracle 迁移至Mysql

    **吴海存,**10g / 11g / 12c OCM,Oracle Exadata / Golden Gate专家,曾于Amazon和Oracle公司担任全球业务资深DBA,目前供职于中国农业银行, ...

  5. sqlinesdata教程_如何将Oracle数据导入MySQL

    Manager进程:需要源端跟目标端同时运行,主要作用是监控管理其它进程,报告错误,分配及清理数据存储空间,发布阈值报告等 Extract进程:运行在数据库源端,主要用于捕获数据的变化,负责全量.增量 ...

  6. oracle迁移到mysql工具_oracle数据库想迁移到mysql上 有什么方法或者工具吗

    Manager进程:需要源端跟目标端同时运行,主要作用是监控管理其它进程,报告错误,分配及清理数据存储空间,发布阈值报告等 Extract进程:运行在数据库源端,主要用于捕获数据的变化,负责全量.增量 ...

  7. oracle变mysql,Oracle变换成为Mysql注意事项

    做项目的时候发现当要将Oracle数据库转换为Mysql需要将SQL语句中二者不兼容的方面需要修改 下面列出自己总结的注意事项: 1.日期格式的转换: Oracle Mysql 注意事项 to_cha ...

  8. mysql sql 设置主键自动增长_Mysql,SqlServer,Oracle主键自动增长的设置

    在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如: CREATE TABLE google(id INT AUTO_INCREMENT PRIMARY ...

  9. 免费数据库(SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2 Express-C、Oracle XE

    免费数据库(SQLite.Berkeley DB.PostgreSQL.MySQL.Firebird.mSQL.MSDE.DB2 Express-C.Oracle XE 2009-02-16 11:2 ...

最新文章

  1. 牛客网里刷题:JS获取输入的数组
  2. RocketMQ命令整理
  3. NGUI的异步场景加载进度条
  4. 关键词 global 和 nonlocal
  5. 作业帮、猿题库们烧了千亿争市场,家长陷入选择焦虑
  6. 四管前级怎么去掉高低音音调_TDG Audio达芬奇:什么是前级,后极?
  7. Windows 中进程的相关操作
  8. task2:opencv的python接口图像储存、色彩空间、
  9. UOJ #297. 一样远
  10. 假如你学过高数,那你这一辈子都不会忘记这个人
  11. Inception(Pytorch实现)
  12. 使用Movavi Photo Editor如何修复照片中的红眼
  13. MySQL之字符串拼接
  14. IMU噪声参数辨识-艾伦方差
  15. SpringBoot整合freemarker模板导出word文件
  16. Linux性能测试(UnixBench)(bench)一键脚本
  17. Maven历史版本下载
  18. BWA处理WES文件
  19. 浅谈umi router
  20. 开源社区Github在2022年06月09日公测了三个新的成就徽章

热门文章

  1. pyqt5动态显示当前时间
  2. 隐马尔科夫模型 概念(上)
  3. java枚举可以int值不_java – 如何通过int值迭代枚举?
  4. FGPM:文本对抗样本生成新方法
  5. ACL 2020 | 基于机器阅读理解框架的命名实体识别方法
  6. 线下课程推荐 | 知识图谱理论与实战:构建行业知识图谱 (第四期)
  7. 活动 | INTERFACE#4 解读搜狗机器翻译技术,体验搜狗旅行翻译宝产品
  8. 数字图像处理与Python实现笔记之频域滤波
  9. java出现errors是什么错误_java中错误(error)和异常(exception)有什么主要区别?
  10. thymeleaf模板引擎