【问题标题】:Replacement throughout the database MYSQL替换整个数据库MYSQL
【发布时间】:2013-06-18 17:39:27
【问题描述】:

我希望替换我的数据库中所有表的所有列中出现的所有字符。

我的专栏名称是这样的:

从information_schema.columns中选择表名、列名;

我会像这样应用更新替换:

update table_name set column_name = replace (column_name, "a", "A");

PS : 将“a”替换为“A”只是一个例子,我的问题是如何在我的两个查询之间链接 table_name 和 column_name。

我尝试了子选择,例如:

update (select table_name from information_schema.tables as tables) set (select column_name from columns as information_schema.columns where table_name = tables) = replace (columns, "a", "A");

但我在尝试时仍然会出错。这样做的正确方法是什么?

提前谢谢你。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您需要的是一个存储过程,它将使用information_schema 查找数据库中的所有表和列,并为所有这些表执行更新语句。

    看看下面的问题,它准确地回答了你想做的事情:Find and replace in entire mysql database

    【讨论】:

      【解决方案2】:

      它不会那样工作的。

      你有两个选择:

      1) 在代码端遍历所有表并为每个表提供午餐更新
      2) 使用stored procedure 遍历所有表格并为每个表格午餐更新

      【讨论】:

        猜你喜欢
        • 2011-06-16
        • 1970-01-01
        • 2016-02-20
        • 1970-01-01
        • 2019-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多