标签:group handler cal concat highlight pen _id 定义变量 exec
DROP PROCEDURE IF EXISTS init ;
delimiter $
CREATE PROCEDURE init( in my_database VARCHAR(200), in column_name VARCHAR(200), in my_new_value VARCHAR(200), in my_old_value VARCHAR(200))
BEGIN
-- 定义变量
declare table_name_str varchar(255);
declare done int;
-- 创建游标,并存储数据
declare class_group CURSOR for
SELECT ic.TABLE_NAME FROM information_schema.COLUMNS ic WHERE TABLE_SCHEMA = my_database AND ic.COLUMN_NAME = column_name;
-- 游标中的内容执行完后将done设置为1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
-- 打开游标
open class_group;
-- 执行循环
posLoop:LOOP
-- 判断是否结束循环
IF done = 1 THEN
LEAVE posLoop;
END IF;
-- 取游标中的值
FETCH class_group into table_name_str;
SET @sql_text =CONCAT("UPDATE ",my_database, ".",table_name_str, " SET ", column_name, " = ", my_new_value, " WHERE ", column_name , " ", my_old_value, ";");
-- 执行更新操作
PREPARE my_table FROM @sql_text;
EXECUTE my_table;
DROP PREPARE my_table;
-- SELECT table_name_str;
END LOOP posLoop;
CLOSE class_group;
END $
-- 执行存储过程
CALL init(‘dev_b2csys‘,‘partner_id‘, "0", ‘IS NULL‘);
-- 删除
DROP PROCEDURE init;
标签:group handler cal concat highlight pen _id 定义变量 exec
原文地址:https://www.cnblogs.com/shianliang/p/13218879.html