这是为 MySQL 编写的简易序列存储程序(一个函数)。
考虑到 update 自身的行锁能力。所以本序列程序具有很强的并发提供能力。
代码分享在:http://my.csdn.net/my/code/detail/12581
首先,需要预先准备序列表
DROP TABLE IF EXISTS Sequence;
CREATE TABLE Sequence
(
name VARCHAR(32),
maxIndex INTEGER,
CONSTRAINT cst_Sequence_pk PRIMARY KEY (name, maxIndex)
) DEFAULT CHARACTER SET utf8
ENGINE InnoDB;
然后,可以在数据库中写入序列求新值的存储程序(函数)
SET GLOBAL log_bin_trust_function_creators = 1;
DROP FUNCTION IF EXISTS nextval;
DELIMITER //
CREATE FUNCTION nextval(sequenceName VARCHAR(32))
RETURNS INTEGER
NOT DETERMINISTIC
CONTAINS SQL
/* ********** ********** ********** **********
This is a common sequence function. It is based on table Sequence.
This function will return new integer by given sequence name.
author: Shane Loo Li
version: 1.1.1, 2012-7-17 Tuesday Modified edition.
history:
1.1.0, 2012-7-14 Saturday Shane Loo Li New
1.1.1, 2012-7-17 Tuesday Shane Loo Li Modified wrong column name.
********** ********** ********** ********** */
BEGIN
DECLARE iMaxIndex INTEGER;
UPDATE Sequence SET maxIndex = maxIndex + 1 WHERE name = sequenceName;
SELECT maxIndex INTO iMaxIndex
FROM Sequence WHERE name = sequenceName;
RETURN iMaxIndex;
END
//
DELIMITER ;
在使用队列之前,应通过给 Sequence 表增加记录的方式,初始化新的序列。
INSERT INTO Sequence ('name...', 0);
之后,就可以通过 nextval('name...') 函数来取得名为 name... 的序列新值。
分享到:
相关推荐
mysql实现序列可以与oracle一样有序列的功能
mysql5.6以及mysql简易安装办法
java通过Mysql实现类似oracle序列功能,
mysql5.5的绿色简易版本,解压后即可使用,无需配置!
flinkcdc-mysql自定义反序列化器
Java课设mysql简易考试系统
Mysql通用ID/序列生成方案,并发支持良好,十并发,各100万,无重复。更大量并发和高性能需求请自行测试。
绿色 简易版 mysql
易语言mysql简易浏览器.rar 易语言mysql简易浏览器.rar 易语言mysql简易浏览器.rar 易语言mysql简易浏览器.rar 易语言mysql简易浏览器.rar 易语言mysql简易浏览器.rar
mysql简易操作说明;mysql简易操作说明
易语言源码mysql简易浏览器.rar 易语言源码mysql简易浏览器.rar 易语言源码mysql简易浏览器.rar 易语言源码mysql简易浏览器.rar 易语言源码mysql简易浏览器.rar 易语言源码mysql简易浏览器.rar易语言源码mysql...
网上大多使用表和函数来模拟序列,但函数内部不支持直接使用数据提交,实际使用中,有可能出现数据回滚。为了解决这个问题,改用存储过程来实现。没有经过大量测试,只做了初步测试。新项目中,我会使用,但目前是否...
易语言mysql简易浏览器源码,mysql简易浏览器,列表,内部接口_判断数据类型,外部接口_设置MySql查询
或是有MYSQL数据库导入student1.sql; C# 工程使用 VS2008 开发可能打不开,可执行文件在 C#学生管理系统\student\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe调试...
mysql序列同义词
该MySql 简易绿色版安装简单方便。 1.将解压文件复制到需要暗转的目录, 2.以管理员身份运行 cmd -> 2.创建系统服务 sc create mysql binPath= 目录(D:\mysql\bin\mysqld.exe) start=auto; 3.启动服务 ...
NULL 博文链接:https://kaka100.iteye.com/blog/976463
MySQL序列是一组整数:1, 2, 3, …,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 本章我们将介绍如何使用MySQL的序列。 使用AUTO_INCREMENT MySQL中...
JavaBean+MySQL简易文章发布系统,采用jsp调用java文件,java文件调用mysql datasource的模式。有新增文章,修改文章,删除文章的功能,适合初学者学习
简单的jsp学习小例子,适合刚开始学习jsp的新手,将其作为简单例子进行学习