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