本篇文章给大家介绍一下mysql实现自增序列的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

1.创建sequence表

CREATE TABLE `sequence` (`name` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '序列的名字',`current_value` int(11) NOT NULL COMMENT '序列的当前值',`increment` int(11) NOT NULL DEFAULT '1' COMMENT '序列的自增值',PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

2.创建–取当前值的函数

DROP FUNCTION IF EXISTS currval;
DELIMITER $
CREATE FUNCTION currval (seq_name VARCHAR(50)) RETURNS INTEGERLANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT ''
BEGINDECLARE value INTEGER; SET value = 0; SELECT current_value INTO value FROM sequenceWHERE name = seq_name; RETURN value;
END
$
DELIMITER ;

3.创建–取下一个值的函数

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 ;

4.创建–更新当前值的函数

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 ;

5.测试添加实例 执行sql

INSERT INTO sequence VALUES ('testSeq', 0, 1);-- 添加一个sequence名称和初始值,以及自增幅度SELECT SETVAL('testSeq', 10);-- 设置指定sequence的初始值SELECT CURRVAL('testSeq');-- 查询指定sequence的当前值SELECT NEXTVAL('testSeq');-- 查询指定sequence的下一个值

相关推荐:《mysql教程》

以上就是mysql如何实现自增序列的详细内容,更多请关注php中文网其它相关文章!

mysql如何实现自增序列相关推荐

  1. php 数据库 自增值,Mysql应用MySql数据库自动递增值问题

    <Mysql应用MySql数据库自动递增值问题>要点: 本文介绍了Mysql应用MySql数据库自动递增值问题,希望对您有用.如果有疑问,可以联系我们. MYSQL必读 Create TA ...

  2. mysql数据库迁移到达梦数据库

    说明:在windowns上安装达梦数据库,并从mysql5.7迁移到达梦数据库8,此处使用的是达梦数据库的试用版本,如果要安装标准版或者企业版,可以花钱购买. 下载安装包 从达梦官网下载安装包,下载地 ...

  3. postgresql 学习笔记

    SQL 入门语言 3.1 SQL(Structured Query Lanuage) 特点:它是结构化查询语句,重要的关系型数据库操作语言.PgSQql 的基础语法也同样适用于其他的关系型数据库如:m ...

  4. oracle迁移mysql自增序列问题

    问题说明: 今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增. 解决办法: 构建环境: ...

  5. Mysql创建自增序列方案(模拟Oracle序列)

    Mysql实现自增序列 mysql自带了自增序列,为了方便通过数据库获取唯一的增长序列满足业务需求,模拟oracle序列完成序列获取方案:为了达到oracle序列的效果,在mysql创建函数来完成模拟 ...

  6. mysql序列表,自增序列生成合同编号

    项目中使用mysql数据库,需要使用自增序列号生成合同编号,编号按年份每年更新,且根据合同模板不同需使用多个自增序列.为了考虑拓展性,也方便其他业务使用序列,使用了序列表进行集中管理,使用函数操作序列 ...

  7. MySQL 自增序列

    目录 1.MySQL 序列使用 2.使用 AUTO_INCREMENT 2.1.实例 3.获取AUTO_INCREMENT值 3.1.PERL实例 3.2.PHP实例 4.重置序列 5.设置序列的开始 ...

  8. mysql自增序列表,自定义mysql自增序列

    自定义mysql自增序列: 序列在pg库中有,可以直接点击操作sequences新建就行,但是mysql中没有,使用时,可以通过自定义函数和建表的方式来实现 1 创建序列表 CREATE TABLE ...

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

    第一步:创建Sequence管理表 sequence DROP TABLE IF EXISTS sequence; CREATE TABLE sequence ( name VARCHAR(50) N ...

最新文章

  1. 多目标跟踪:监控领域你必须要了解的算法
  2. JavaScript (二)
  3. 内置传感器---智能手机(资料)
  4. 零基础学Python-爬虫-1、网络请求Requests【网络操作理论基础与实践·请认真看看理论,理论基础决定后期高度】
  5. 新华字典java_新华字典查询示例代码
  6. python+OpenCV图像处理(六)图像平滑与滤波
  7. Eclipse 3.2 + Tomcat 5.5 + Lomboz 3.2 简单配置
  8. iOS开发隐藏tabBar的问题
  9. 互联网世界的“人工智能”——探秘“深度学习”的前世今生
  10. 5.Docker技术入门与实战 --- 访问 Docker 仓库
  11. 【numpy】数组增加一维(升维)小结
  12. postgresql 窗口函数
  13. Oracle 的 Round函数详解
  14. 带隔离功能的 高速CAN总线收发器 SIT1050ISODUB8 国产
  15. CentOS6.4x84挂载U盘
  16. TA(技术美术)宝藏网站
  17. 人工智能定义及三次热潮
  18. 樊登读书会用事实说话读后感_《用事实说话:透明化沟通的8项原则》【美】马克·墨菲电子书【pdf mobi txt epub 在线阅读 读后感】 - 精英日记网...
  19. 数据挖掘-泰坦尼克号生存数据分析
  20. 网络架构采用 bs/cs 混搭模式_最高处|SM一姐出道20年充满偶像气质天生音乐才能还有最高级的混搭_休闲...

热门文章

  1. 计算100以内所有奇数的和以及所有偶数的和,分别显示之
  2. i2c驱动架构 davinc dm368 i2c驱动分析
  3. ios架构与开发第五课 BFF、MVVM和响应式编程
  4. vue设置html自动跳转路由,vue路由跳转的三种方式是什么?
  5. 蓝桥杯Python—闰年判断
  6. RDP(远程桌面协议)的应用-3389
  7. 编程:最大公约数算法解析
  8. 用 卡莱特A35播放盒子 在局域网内更新单行文本
  9. 续写大屏产业进化曲线:当荣耀智慧屏越过山丘
  10. Jsoncpp解析中国地区编码JSON数据