使用查询替换列名,表名和其他结构

时间:2015-07-16 08:04:31

标签: mysql sql

我想搜索MySQL数据库的结构并替换包含或等于“xyz *”的结构...列名和表名是主要的,但我想搜索所有结构。

然后,我想用“abcdefg”替换“xyz *”。

1 个答案:

答案 0 :(得分:0)

我怀疑用一个查询可以做到这一点。你可以做的是创建ALTER语句。我会写一个小程序(用你选择的语言)和 首先,我会得到这样的表名:

select table_name from information_schema.tables;

如果有一个名为" xyz *"的表,则必须在循环中检查结果集。然后创建一个ALTER语句:

RENAME TABLE tbl_name TO new_tbl_name 

对于列,您必须再次获取每个表,然后是每个表的所有列:

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'tbl_name';

再次改变列名称的循环,这次使用ALTER TABLE

另见:

https://dev.mysql.com/doc/refman/5.1/en/alter-table.html https://dev.mysql.com/doc/refman/5.0/en/rename-table.html