如何以编程方式重命名数据库中的所有表,并在所有表的名称前添加/附加一些文本?

时间:2013-08-16 09:03:11

标签: mysql sql

我有一个类似于:

的表的mySQL数据库
users
tests
billing

我正在寻找一个SQL查询,它循环遍历数据库中的表并将application_附加到名称,从而产生:

application_users
application_tests
application_billing

2 个答案:

答案 0 :(得分:1)

根据您使用的操作系统,您是否考虑编写一个shell脚本,通过sed管道“show tables”命令的输出,以生成带有相应alter table命令的脚本文件?

amrith@amrith-vbox:~/so$ more showtables.sql
show tables
amrith@amrith-vbox:~/so$ mysql -uroot -ppassword -N test < showtables.sql | awk '{ print "alter table " $1 " rename to abc_"$1 }'
alter table conversations rename to abc_conversations
alter table foo rename to abc_foo
alter table messages rename to abc_messages
alter table t1 rename to abc_t1
amrith@amrith-vbox:~/so$

您可以将该输出发送到某个.sql文件,然后使用mysql执行它吗?

答案 1 :(得分:0)

RENAME TABLE  
   `database`.`table_1234` TO `database`.`new_table_1234`,  
   `database`.`table_3456` TO `database`.`new_table_3456`;