mysql如何实现自增序列
本篇文章给大家介绍一下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如何实现自增序列相关推荐
- php 数据库 自增值,Mysql应用MySql数据库自动递增值问题
<Mysql应用MySql数据库自动递增值问题>要点: 本文介绍了Mysql应用MySql数据库自动递增值问题,希望对您有用.如果有疑问,可以联系我们. MYSQL必读 Create TA ...
- mysql数据库迁移到达梦数据库
说明:在windowns上安装达梦数据库,并从mysql5.7迁移到达梦数据库8,此处使用的是达梦数据库的试用版本,如果要安装标准版或者企业版,可以花钱购买. 下载安装包 从达梦官网下载安装包,下载地 ...
- postgresql 学习笔记
SQL 入门语言 3.1 SQL(Structured Query Lanuage) 特点:它是结构化查询语句,重要的关系型数据库操作语言.PgSQql 的基础语法也同样适用于其他的关系型数据库如:m ...
- oracle迁移mysql自增序列问题
问题说明: 今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增. 解决办法: 构建环境: ...
- Mysql创建自增序列方案(模拟Oracle序列)
Mysql实现自增序列 mysql自带了自增序列,为了方便通过数据库获取唯一的增长序列满足业务需求,模拟oracle序列完成序列获取方案:为了达到oracle序列的效果,在mysql创建函数来完成模拟 ...
- mysql序列表,自增序列生成合同编号
项目中使用mysql数据库,需要使用自增序列号生成合同编号,编号按年份每年更新,且根据合同模板不同需使用多个自增序列.为了考虑拓展性,也方便其他业务使用序列,使用了序列表进行集中管理,使用函数操作序列 ...
- MySQL 自增序列
目录 1.MySQL 序列使用 2.使用 AUTO_INCREMENT 2.1.实例 3.获取AUTO_INCREMENT值 3.1.PERL实例 3.2.PHP实例 4.重置序列 5.设置序列的开始 ...
- mysql自增序列表,自定义mysql自增序列
自定义mysql自增序列: 序列在pg库中有,可以直接点击操作sequences新建就行,但是mysql中没有,使用时,可以通过自定义函数和建表的方式来实现 1 创建序列表 CREATE TABLE ...
- 12:MYSQL 使用函数创建自增序列管理表(批量使用自增表,设置初始值,自增幅度)
第一步:创建Sequence管理表 sequence DROP TABLE IF EXISTS sequence; CREATE TABLE sequence ( name VARCHAR(50) N ...
最新文章
- 多目标跟踪:监控领域你必须要了解的算法
- JavaScript (二)
- 内置传感器---智能手机(资料)
- 零基础学Python-爬虫-1、网络请求Requests【网络操作理论基础与实践·请认真看看理论,理论基础决定后期高度】
- 新华字典java_新华字典查询示例代码
- python+OpenCV图像处理(六)图像平滑与滤波
- Eclipse 3.2 + Tomcat 5.5 + Lomboz 3.2 简单配置
- iOS开发隐藏tabBar的问题
- 互联网世界的“人工智能”——探秘“深度学习”的前世今生
- 5.Docker技术入门与实战 --- 访问 Docker 仓库
- 【numpy】数组增加一维(升维)小结
- postgresql 窗口函数
- Oracle 的 Round函数详解
- 带隔离功能的 高速CAN总线收发器 SIT1050ISODUB8 国产
- CentOS6.4x84挂载U盘
- TA(技术美术)宝藏网站
- 人工智能定义及三次热潮
- 樊登读书会用事实说话读后感_《用事实说话:透明化沟通的8项原则》【美】马克·墨菲电子书【pdf mobi txt epub 在线阅读 读后感】 - 精英日记网...
- 数据挖掘-泰坦尼克号生存数据分析
- 网络架构采用 bs/cs 混搭模式_最高处|SM一姐出道20年充满偶像气质天生音乐才能还有最高级的混搭_休闲...