BEGIN
-- 定义循环条件
DECLARE flag INT DEFAULT 0;
-- 保存表名
DECLARE tname VARCHAR(50);
-- 查询数据库test中含有userId列的表,如果区分大小写使用binary COLUMN_NAME = 'userId'
DECLARE result CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.Columns WHERE TABLE_SCHEMA = 'PANGU' AND COLUMN_NAME = 'DT_CREATE_TIME';
-- 退出循环
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET flag = 1;
-- 打开游标
OPEN result;
WHILE flag <> 1 DO
-- 游标指向下一个位置,可以有多个数据,比如FETCH result INTO tname,ttype,...;
FETCH result INTO tname;
-- 拼接字符串表名sql,根据需要使用CONCAT函数连接
-- SET @execSql = CONCAT('SELECT * FROM ',tname,' WHERE imei = ',oldImei,' ;');
SET @execSql = CONCAT('UPDATE ', tname, ' SET DT_CREATE_TIME = DATE_SUB(DT_CREATE_TIME,INTERVAL 1 DAY) ;');
PREPARE stmt FROM @execSql;
EXECUTE stmt;
END WHILE;
END
参考连接:https://blog.csdn.net/asunlei/article/details/79646526
https://blog.csdn.net/qq_37345604/article/details/90289280
https://blog.csdn.net/qq_41594146/article/details/82948609