如何在MySQL数据库中替换所有行中所有字段中的所有表?

我有一个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

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。