整个数据库MYSQL的替换

时间:2013-06-21 14:30:23

标签: mysql sql

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

我得到了我的专栏名称:

从information_schema.columns中选择table_name,column_name;

我会应用这样的UPDATE REPLACE:

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

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

我尝试使用subselect,例如:

update(从information_schema.tables中选择table_name作为表)set(从列中选择column_name作为information_schema.columns,其中table_name = tables)= replace(columns,“a”,“A”);

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

提前谢谢。

2 个答案:

答案 0 :(得分:2)

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

请查看以下问题,该问题准确回答了您的要求:Find and replace in entire mysql database

答案 1 :(得分:0)

它不会那样工作。

您有两个选择:

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