DELIMITER $$ ---mysql中必須要加這玩意兒
drop PROCEDURE if EXISTS NewProc;
CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`()
BEGIN
-----定義變變量
declare tableName varchar(200) default '';
declare columnName varchar(200) default '';
declare done int default 0;
----創建一個遊標
declare cur cursor for SELECT table_name as tableName,COLUMN_NAME as columnName FROM INFORMATION_SCHEMA. COLUMNS WHERE TABLE_SCHEMA = 'ems_db' and data_type = 'varchar';
declare continue HANDLER for not found set done = 1;
open cur;
posLoop:LOOP
IF done=1 THEN
LEAVE posLoop;
END IF;
FETCH cur into tableName,columnName;
set @tableNames = CONCAT(tableName);
set @columnNames = CONCAT(columnName);
----定義一個變量方便下面用prepare
set @sqlStr = CONCAT("update ",@tableNames," set ",@columnNames," ='銘德.觀瀾府' ",' where ',@columnNames," = '德能.渝貴佳苑'");
prepare stmt from @sqlStr;
---執行SQL
execute stmt;
deallocate prepare stmt;
END LOOP posLoop;
CLOSE cur;
END $$
DELIMITER ;