在整个数据库中用另一个字符串替换字符串的存储过程

时间:2013-10-25 15:47:44

标签: mysql stored-procedures

我正在尝试创建一个更改整个数据库中的字符串的过程...经过大量搜索后我得出了这个过程,但它给出了一个错误。程序是:

BEGIN

declare t,c varchar(100);

declare TABLES cursor for SELECT table_name, column_name
                                    FROM `INFORMATION_SCHEMA`.`COLUMNS` 
                                    WHERE `TABLE_SCHEMA`='MY_DATABSE';

declare exit handler for 1329 begin end;
open tables;
looping: loop 
fetch tables into t,c;
SET @s1= CONCAT('UPDATE ', 
              'MY_DATABASE', '.', t, ' SET ',
              c, ' = replace(', c,', \'', old, '\'', ' , ', '\'', new, '\')');

     PREPARE stmt FROM @s1;
     EXECUTE stmt;
     DEALLOCATE PREPARE stmt;
end loop;
close tables;
END

使用任何参数调用过程时的错误是语法中众所周知的1064错误:检查与MySQL服务器版本对应的手册,以便在'column_to_update(c)= replace(column_to_update(c)附近使用正确的语法),'old','new')'在第1行

0 个答案:

没有答案