mysql 通过存储过程批量更新数据(注意操作用户需要有mysql的创建临时表权限)
来源:互联网 发布:淘宝宝贝权重查询软件 编辑:程序博客网 时间:2024/05/22 12:28
delimiter $$
# 删除 已有的 存储过程
DROP PROCEDURE IF EXISTS update_user_account_method;
# 创建新的存储过程
CREATE PROCEDURE update_user_account_method()
-- 批量更新HIK+手机号
BEGIN
# 批量更新sx_为xs_
UPDATE sys_user t
SET t.account = REPLACE (t.account,'sx_','xs_');
# 创建临时表
-- 不存在则创建临时表
create temporary table if not exists tmp(id bigint(20) primary key,ac varchar(20) not null) ;
-- 使用前先清空临时表
truncate table tmp;
# 查询HIK的账户数
SET @num=(SELECT COUNT(1) FROM sys_user WHERE account like concat('%','HIK','%'));
# HIK的账户数大于0则执行
if @num>0 then
insert into tmp(id,ac)
SELECT user_id,random_num
FROM (
SELECT user_id,concat('xs_',FLOOR(RAND()*50000000 + 50000000)) AS random_num
FROM sys_user WHERE account like concat('%','HIK','%')
) AS ss
WHERE random_num NOT IN (SELECT account FROM sys_user);
end if;
# 根据临时表更新表格对应的字段
UPDATE sys_user , tmp
SET sys_user.account = tmp.ac
WHERE sys_user.user_id = tmp.id;
# 使用后删除临时表
drop table tmp;
END $$
delimiter ;
# 执行存储过程
CALL update_user_account_method;
# 删除 已有的 存储过程
DROP PROCEDURE update_user_account_method;
# 删除 已有的 存储过程
DROP PROCEDURE IF EXISTS update_user_account_method;
# 创建新的存储过程
CREATE PROCEDURE update_user_account_method()
-- 批量更新HIK+手机号
BEGIN
# 批量更新sx_为xs_
UPDATE sys_user t
SET t.account = REPLACE (t.account,'sx_','xs_');
# 创建临时表
-- 不存在则创建临时表
create temporary table if not exists tmp(id bigint(20) primary key,ac varchar(20) not null) ;
-- 使用前先清空临时表
truncate table tmp;
# 查询HIK的账户数
SET @num=(SELECT COUNT(1) FROM sys_user WHERE account like concat('%','HIK','%'));
# HIK的账户数大于0则执行
if @num>0 then
insert into tmp(id,ac)
SELECT user_id,random_num
FROM (
SELECT user_id,concat('xs_',FLOOR(RAND()*50000000 + 50000000)) AS random_num
FROM sys_user WHERE account like concat('%','HIK','%')
) AS ss
WHERE random_num NOT IN (SELECT account FROM sys_user);
end if;
# 根据临时表更新表格对应的字段
UPDATE sys_user , tmp
SET sys_user.account = tmp.ac
WHERE sys_user.user_id = tmp.id;
# 使用后删除临时表
drop table tmp;
END $$
delimiter ;
# 执行存储过程
CALL update_user_account_method;
# 删除 已有的 存储过程
DROP PROCEDURE update_user_account_method;
阅读全文
1 0
- mysql 通过存储过程批量更新数据(注意操作用户需要有mysql的创建临时表权限)
- mysql 批量更新临时表中的数据
- MYSQL存储过程:批量更新数据
- [mysql]表批量操作的存储过程
- mysql存储过程需要注意的
- 使用mysql存储过程需要注意的
- MySQL 用户执行存储过程的权限
- MySQL 用户执行存储过程的权限
- MySQL用户执行存储过程的权限
- MYSQL存储过程:批量更新数据2(产品品牌)
- MYSQL存储过程:批量更新、插入数据、游标
- MySQL 创建临时时间表 存储过程
- Mysql 创建存储过程 更新表
- MySQL存储过程:批量为用户授权
- MySql 存储过程 临时表 无法插入数据
- mysql 创建数据库、用户、给用户赋权限、创建表的过程
- MySQL利用临时表存储和操作数据
- Mysql创建用户表并利用存储过程添加100万条随机用户数据
- 深入Java虚拟机学习
- 正版还是破解?——软件破解技术与伦理道德
- 多线程安全修改static变量
- JavaBean笔记
- QT版用QLCDnumber显示时间
- mysql 通过存储过程批量更新数据(注意操作用户需要有mysql的创建临时表权限)
- c++如何用cout输出其他进制(十进制以外)以外数据
- 虚幻4动态加载PNG给Texture2D
- CSS3 calc() 属性——会计算的属性
- Week03_day05 集合(上)
- VMware® Workstation 12 Pro共享异常的解决办法
- 在JS中获取文件点之后的扩展名
- eclipse如何配置Tomcat
- linux中class_create和class_register说明