替换MySQL数据库中的所有列和表名称

时间:2015-03-09 16:31:15

标签: mysql sql

我的数据库中有大约20个表,我在许多表名和列名中都使用了“car”这个词。

是否有脚本或工具可以让我用'车辆'替换'car'的每个实例?我不想替换任何表数据本身。

1 个答案:

答案 0 :(得分:2)

您可以使用查询生成RENAME TABLE语句,然后只需复制并执行它们。

select concat('rename table ', table_name, ' to ', substring_index(table_name, 'car', 1), 'vehicle',  substring_index(table_name, 'car', -1), ';')
from information_schema.tables
where table_schema = 'your_schema'
  and table_name like '%car%';

substring-index将返回“汽车”第一次出现之前的内容。当给出1时。

当给定-1时,它将返回后面的内容。