mysql中使得多张表的ID不重复
来源:互联网 发布:qq飞车白银雷诺数据 编辑:程序博客网 时间:2024/06/03 16:44
数据库中有多张表,如何使得ID不重复呢?
1、创建表tbl_sequence
CREATE TABLE tbl_sequence
(
seq_name VARCHAR(50) NOT NULL,
minval INT NOT NULL,
maxval INT NOT NULL,
current_val INT NOT NULL,
increment_val INT DEFAULT '1' NOT NULL,
PRIMARY KEY (seq_name)
)
(
seq_name VARCHAR(50) NOT NULL,
minval INT NOT NULL,
maxval INT NOT NULL,
current_val INT NOT NULL,
increment_val INT DEFAULT '1' NOT NULL,
PRIMARY KEY (seq_name)
)
2、设置默认值
insert into tbl_sequence (seq_name, minval, maxval, current_val, increment_val)
values ('seq_no', 1, 99999999, 1, 1);
values ('seq_no', 1, 99999999, 1, 1);
3、自定义函数
create function _nextval(name varchar(50))
returns integer
begin
declare _cur int;
declare _maxvalue int; -- 接收最大值
declare _increment int; -- 接收增长步数
set _increment = (select increment_val from tbl_sequence where seq_name = name);
set _maxvalue = (select maxval from tbl_sequence where seq_name = name);
set _cur = (select current_val from tbl_sequence where seq_name = name);
update tbl_sequence -- 更新当前值
set current_val = _cur + increment_val
where seq_name = name ;
if(_cur + _increment >= _maxvalue) then -- 判断是都达到最大值
update tbl_sequence
set current_val = minval
where seq_name = name ;
end if;
return _cur;
end;
returns integer
begin
declare _cur int;
declare _maxvalue int; -- 接收最大值
declare _increment int; -- 接收增长步数
set _increment = (select increment_val from tbl_sequence where seq_name = name);
set _maxvalue = (select maxval from tbl_sequence where seq_name = name);
set _cur = (select current_val from tbl_sequence where seq_name = name);
update tbl_sequence -- 更新当前值
set current_val = _cur + increment_val
where seq_name = name ;
if(_cur + _increment >= _maxvalue) then -- 判断是都达到最大值
update tbl_sequence
set current_val = minval
where seq_name = name ;
end if;
return _cur;
end;
4、查询函数
select _nextval('seq_no')
5、在插入的时候,插入语句就可以这么写:
INSERT INTO t_member_info (id, member_name)
VALUES ( _nextval('seq_no'), 'zxd123');
6、如此一来,数据库中的表ID就不会重复了!!!
阅读全文
1 0
- mysql中使得多张表的ID不重复
- 产生不重复的ID
- 使用Hashset使得字符串数组中不包含重复字符串
- 利用java生成不重复的ID
- php uniqid() 通过MYSQL实现全局不重复的唯一ID
- MySQL 中 AUTO_INCREMENT 的“坑”--id不连续
- MySql中,查询不重复记录的总数的方法
- mysql中distinct的用法(不重复记录)
- Mysql删除id相同的重复数据
- php 获取mysql中插入的id 和 sql语句查看是否有重复
- 随机抽取不重复ID
- 在mysql中查询不重复的数据并且该数据不为空
- 根据id生成不重复的邀请码
- python 生成随机不重复的用户id
- 基于twitter的雪花算法生成不重复id
- sql 2005 中如何自动生成不重复的,长度相同字符串作为一个数据表的id
- Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答
- Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答
- 22 WebGL使用多幅纹理
- javaScript的数据类型
- Leetcode练习<十> 列表元素去重
- 基于鸿洋okhttp封装工具类okhttputils 返回数据回调封装
- ubuntu + anaconda + tensorflow
- mysql中使得多张表的ID不重复
- tensorflow入门(4)逻辑回归分类器
- 教你用最新工具反编译android apk
- apache下开启ssl访问,即https
- Android studio APP签名打包
- Hive 中的 LEFT SEMI JOIN 与 JOIN ON 的前世今生
- Java笔试题解(10)
- 春秋战国至秦汉历史脉络图
- MySQL访问权限问题之1130