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扩展的途径,其用法与内置函数相同. 二.自定义函数应该具备哪些条件? 我 ...
随机推荐
- JavaScript的技巧45招
JavaScript奇技淫巧45招 来自仲老师的分享: 原文地址[http://chensd.com/2015-01/45-useful-javascript-tips-tricks-and-best ...
- Jmeter调度器小记
jmeter的调度器中[持续时间(秒)]的优先级是高于[结束时间]和[启动时间]的 举例子: 前提:[循环次数]勾选[永远] 场景1:[持续时间(秒)]设置为120S,[启动时间]设置T+1min,[ ...
- Session服务器之Session复制!
全部运行在Tomcat下 第一台主机:192.168.200.131 安装nginx 修改hosts文件 [root@localhost ~]# vim /etc/hosts 192.168.200 ...
- 阿里云oss操作
参考网址 https://blog.csdn.net/qq_22764659/article/details/87969743
- 使用YII缓存注意事项
在使用YII自身缓存时,在main.php文件配置中一定要配置keyPrefix,如下图: 'cache' => array( 'class' => 'CFileCache', 'keyP ...
- vue element多图上传
最近项目需要优化图片上传,由单个改成多个,这里记录下自己遇到的一些问题和解决方法 本以为是传全部图片到后台,然后统一处理,但后面在Network中发现upload组件其实还是单一上传,那只能依照它的方 ...
- MySQL之多表查询(笛卡尔积查询、内连接、外连接(左外连接,右外连接)、union、union all )
多表查询 测试数据 create table emp (id int,name char(10),sex char,dept_id int); insert emp values(1,"大黄 ...
- kvm的分层控制
第五层 virsh virt-manager(和libvirtd)利用了libvirt-api virsh pool-list --all virsh pool-define xxx/xml会 ...
- Maven 项目中使用 logback
添加依赖 <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logsta ...
- Python中的进制表示方式及转换方法
在Python中,非十进制数字的表示方式为: 二进制:前面加0b,如0b1001 八进制:前面加0o,如0o3562 十六进制:前面加0x,如0x2af3 不同进制数字可直接进行数学计算,结果返回十进 ...