mysql#自定义序列
mysql主键不用自增数字的时候,可以参考如下方式,我抄来的。
-- 创建公共的序列表
DROP TABLE IF EXISTS t_common_sequence;
CREATE TABLE t_common_sequence (
seq_name VARCHAR(100) NOT NULL COMMENT '序列名称',
current_val INT NOT NULL COMMENT '当前值',
increment_val INT NOT NULL DEFAULT '' COMMENT '增长值 默认1',
PRIMARY KEY(seq_name)
)
ENGINE = InnoDB
CHARACTER SET = utf8
COMMENT='公共的序列表'; -- 创建函数,获取指定名称的 当前序列值
DELIMITER //
DROP FUNCTION IF EXISTS f_currval;
CREATE FUNCTION f_currval(v_seq_name VARCHAR(100))
RETURNS INT
BEGIN
DECLARE value INT;
SET value = 0;
SELECT current_val into value
FROM t_common_sequence
WHERE seq_name = v_seq_name;
RETURN value;
END;
//
DELIMITER ; -- 创建函数,获取指定名称的 下一个序列值
DELIMITER //
DROP FUNCTION IF EXISTS f_nextval;
CREATE FUNCTION f_nextval(v_seq_name VARCHAR(100))
RETURNS INT
BEGIN
UPDATE t_common_sequence
SET current_val = current_val + increment_val
WHERE seq_name = v_seq_name;
RETURN f_currval(v_seq_name);
END;
//
DELIMITER ; -- 创建函数,修改指定名称的序列值,并返回
DELIMITER //
DROP FUNCTION IF EXISTS f_setval;
CREATE FUNCTION f_setval(v_seq_name VARCHAR(100), v_new_val INT)
RETURNS INT
BEGIN
UPDATE t_common_sequence
SET current_val = v_new_val
WHERE seq_name = v_seq_name;
RETURN f_currval(v_seq_name);
END;
//
DELIMITER ; insert into t_common_sequence(seq_name,current_val,increment_val) values('seq_job',1,1); -- 获取当前序列
select f_currval('seq_job'); -- 获取下一个序列
select f_nextval('seq_job'); -- 设置序列值,并返回
select f_setval('seq_job',10); select * from t_common_sequence;
mysql#自定义序列的更多相关文章
- MYSQL 自定义序列函数
代码如下: DROP TABLE SEQNUM; -- 创建序列表 CREATE TABLE SEQNUM( ID BIGINT ); -- 插入初识值 insert INTO SEQNUM valu ...
- mysql 自定义函数
原文:http://www.cnblogs.com/zhangminghui/p/4113160.html 引言 MySQL本身提供了内置函数,这些函数的存在给我们日常的开发和数据操作带来了很大的便利 ...
- mysql 自定义排序顺序
mysql 自定义排序顺序 实例如:在sql语句中加入ORDER BY FIELD(status,3,4,0,2,1)语句可定义排序顺序 SELECT tsdvoucher0_.VOUCHER_ID ...
- python魔法方法-自定义序列
自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等). 如果要实现这个功能,就要遵循 python ...
- mysql自定义函数并在存储过程中调用,生成一千万条数据
mysql 自定义函数,生成 n 个字符长度的随机字符串 -- sql function delimiter $$ create function rand_str(n int) returns VA ...
- MySQL 自定义函数CREATE FUNCTION实例
分享一个MySQL 自定义函数CREATE FUNCTION的实例.mysql> delimiter $$mysql> CREATE FUNCTION myFunction-> (i ...
- Mysql的序列
Mysql的序列 Mysql自带的序列:字段设置为int,属性里面选上“自动增长”即可: 在插入数据的时候可以不插入该字段的值,mysql会自动处理:
- python魔法方法-自定义序列详解
自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等). 如果要实现这个功能,就要遵循 python ...
- MySQL自定义函数(四十六)
MySQL自定义函数 一.什么是MYSQL自定义函数? mysql当中的自定义函数,我们简称为UDF,它实际上是一种对MySQL扩展的途径,其用法与内置函数相同. 二.自定义函数应该具备哪些条件? 我 ...
随机推荐
- 细说unittest
一.unittest模块官方文档: https://docs.python.org/3/library/unittest.html 二.一张图看懂unittest: 三.Unittest主要方法属性: ...
- Springboot学习:日志
介绍 市面上的日志框架: JUL.JCL.Jboss-logging.logback.log4j.log4j2.slf4j.... 日志门面 (日志的抽象层) 日志实现 JCL(Jakarta Com ...
- JQuery DOM操作:设置内容&属性&添加元素&插入元素&包裹&克隆&移除&替换
JQuery text().html().val() $(elem).text(str):添加文本内容str到elem类型元素,返回jQuery对象 $(elem).text():返回第一个elem标 ...
- servlet类常用代码
1.设置响应编码格式 response.setContentType(");
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 线性代数
import numpy.matlib import numpy as np a = np.array([[1,2],[3,4]]) b = np.array([[11,12],[13,14]]) p ...
- Java面向对象编程 -1.6
引用传递与垃圾产生分析 经过了一系列的分析之后已经确认,所有的引用传递的本质就是一场堆内存的调戏游戏.如果对于引用传递如果处理不当那么也会造成垃圾的产生, 那么本次将针对于垃圾产生的原因进行简单分析. ...
- request库解析中文
官网地址: http://cn.python-requests.org/zh_CN/latest/ 高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某 ...
- ajax方法详解
$.ajax()常用参数的设置及其意义 $.ajax({ async:true, /*是否异步请求,用这对象的目的就是为了异步请求,所以此值一般不变,恒为true*/ cache:false, /*是 ...
- 笔记-爬虫部署及运行工具-scrapydweb
笔记-爬虫部署及运行工具-scrapydweb 1. 简介 scrapyd是爬虫部署工具,但它的ui比较简单,使用不是很方便. scrapydweb以scrapyd为基础,增加了ui界面和监 ...
- PTA的Python练习题(七)
不知不觉一个星期过去了,继续从 第3章-12 求整数的位数及各位数字之和 开始做题 1. 我原来想用题目漏洞做题的,不过想想还是算了自己写个完整的: a=int(input()) b=len(str( ...