我有一个Moodle安装,我迁移到另一台服务器,我需要更改几个旧域的引用.
对于搜索所有表,所有字段和所有行的给定数据库,如何在MySQL中替换另一个字符串的字符串?
我不需要更改字段名称,只需更改值.
相关:How can I use mySQL replace() to replace strings in multiple records?
但标记为答案解决方案意味着我强烈键入表名称,我需要将其解压缩到整个数据库,而不是手动处理运行脚本的每个表N次.
最佳答案
我会考虑查询INFORMATION_SCHEMA.COLUMNS并动态搜索列和表.尝试在db中创建所有列和表的游标:
DECLARE col_names CURSOR FOR
SELECT column_name,table_name
FROM INFORMATION_SCHEMA.COLUMNS
然后遍历每个表中的每个列,并运行dynamic / prepared sql来更新字符串所在的位置.
以下是一些很好的帖子,可以帮助您找到正确的方向:
https://stackoverflow.com/a/4951354/1073631
https://stackoverflow.com/a/5728155/1073631