0

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

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 行

4

0 回答 0