mysql本身不提供序列机制,但是可以通过函数来模拟实现序列

CREATE TABLE IF NOT EXISTS `sequence`  (
`id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`current_value` int(11) NULL DEFAULT NULL,
`increment` int(11) NOT NULL DEFAULT '',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci; INSERT INTO `sequence` (`id`, `current_value`, `increment`) VALUES ('demo', 0, 1); DROP FUNCTION IF EXISTS `current_sequence`;
DELIMITER //
CREATE FUNCTION `current_sequence`(seq_id VARCHAR(255)) RETURNS int(11)
READS SQL DATA
DETERMINISTIC
BEGIN
DECLARE VALUE INTEGER;
SET VALUE = 0;
SELECT current_value INTO VALUE FROM sequence WHERE id = seq_id;
RETURN VALUE;
END//
DELIMITER ; DROP FUNCTION IF EXISTS `next_sequence`;
DELIMITER //
CREATE FUNCTION `next_sequence`(seq_id VARCHAR(255)) RETURNS int(11)
DETERMINISTIC
BEGIN
UPDATE sequence SET current_value = current_value + increment WHERE id = seq_id;
RETURN current_sequence(seq_id);
END//
DELIMITER ;

最新文章

  1. 什么是jquery $ jQuery对象和DOM对象 和一些选择器
  2. 利用linux漏洞进行提权
  3. JavaBean用JSP调用和使用JSP动作标签的区别
  4. Ubuntu14.04 caffe 配置
  5. NGUI系列教程三
  6. async await 异步编程杂记
  7. #pragma execution_character_set的意义
  8. why do we need virtual methods in C++?
  9. SQL生成一年每一天的时间列表的几种方法
  10. ElasticSearch本地调测环境构建
  11. Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录
  12. .NET知识体系(转载)
  13. 【算法】螺旋方阵 上交OJ1021
  14. MySql 学习之路-高级2
  15. ansible如果兼容Centos5
  16. python基础之 数据类型的补充,小数据类型
  17. 17秋 软件工程 第六次作业 Beta冲刺 Scrum3
  18. 为DataGridView增加鼠标滚轮功能
  19. jQuery如何获取元素及选择器的参考
  20. 记一次解决CSS定位bug思路

热门文章

  1. C plus plus 控制格式
  2. 马老师 Linux基础入门
  3. bootstrap Validators
  4. Html5 Geolocation获取地理位置信息(转)
  5. C# 调节图片亮度
  6. PLSQL_自治事务和嵌套事物的理解和用法(案例)
  7. 2-05. 求集合数据的均方差(15) (数学啊 ZJU_PAT)
  8. ie11 下 input 默认有 X 关闭按钮的问题
  9. Latex文件如何拆分进行独立编译?
  10. 【Android】16.5 Android内置的系统服务