0

我正在寻找替换我的数据库中所有表的所有列中出现的所有字符。

我的专栏名称是这样的:

从 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");

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

先感谢您。

4

2 回答 2

2

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

看看下面的问题,它准确地回答了你想做的事情:在整个 mysql 数据库中查找和替换

于 2013-06-21T14:33:29.750 回答
0

它不会那样工作。

您有 2 个选项:

1)在代码端遍历所有表并为每个表提供午餐更新
2)使用一个存储过程来迭代所有表并为每个表提供午餐更新

于 2013-06-21T14:34:50.073 回答