批量mysql修改表前缀

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量mysql修改表前缀相关的知识,希望对你有一定的参考价值。

谁能告诉我啊,怎么批量修改表的前缀

以wordpress数据库表为例。
先登入你的phpmyadmin中,选中你的wordpress数据库,选择sql出现如下图,然后输入sql命令Select CONCAT('ALTER TABLE ', table_name, ' RENAME TO ', table_name,';' )
FROM information_schema.tables
Where table_name LIKE 'wp_%';

得到结果:
ALTER TABLE wp_xyz RENAME TO wp_xyz;
ALTER TABLE wp_opq RENAME TO wp_opq;

(假设数据里有两个表: wp_xyz 、 wp_opq,前缀都是wp )
2、复制上面的结果到记事本,寻找RENAME TO wp_批量替换成
RENAME TO cool_wp(将前缀改成cool_前缀)
3、再复制记事本的内容,粘帖到phpmyadmin的sql运行框内,执行。
参考技术A 举个例子。
你是要把你当前 mysql
某个 数据库 (例如 test )下面。
全部的表 ( 例如有 a, b, c ) 。
将表名字, 修改为有 T_ 的前缀 ( 例如 T_a , T_b , T_c )

你是要这个效果么?
先确定一下。追问

实在太对咯,我目前的表全是cmsdj_pre_感觉太长想吧cmsdj_pre_改成dzmusic_

追答

我这里就在我的 test 数据库下面,创建2个表, 模拟一下你那里的环境。

CREATE TABLE cmsdj_pre_Test1( id int);
CREATE TABLE cmsdj_pre_Test2( id int);

然后执行下面的SQL

SELECT
CONCAT('ALTER TABLE ',
table_name,
' RENAME TO dzmusic_',
SUBSTRING(table_name, 11),
';' ) AS script
FROM
information_schema.tables
WHERE
table_schema = 'test'
AND LEFT(table_name, 10) = 'cmsdj_pre_'
ORDER BY
table_name DESC;

查询的结果,将显示如下:

+------------------------------------------------------+
| script |
+------------------------------------------------------+
| ALTER TABLE cmsdj_pre_test2 RENAME TO dzmusic_test2; |
| ALTER TABLE cmsdj_pre_test1 RENAME TO dzmusic_test1; |
+------------------------------------------------------+
2 rows in set (0.02 sec)

你只需要把查询结果 复制, 然后粘贴出来执行一下,就可以了。

追问

还是不懂哦,我不会操作mysql

参考技术B 请参阅:http://blog.sina.com.cn/s/blog_60028cb80100nfcz.html追问

你的这个之前我就看过,多少我不会

追答

把那段sql编译成存储过程 然后调用存储过程,填入参数

参考资料:http://blog.sina.com.cn/s/blog_60028cb80100nfcz.html

MySQL

1. MySQL批量删除指定前缀表

Select CONCAT( ‘drop table ‘, table_name, ‘;‘ )
FROM information_schema.tables
Where table_name LIKE ‘mytaobao_%‘;

执行完上方的sql后将下方的结果copy出来执行一次就会将所有前缀为“mytaobao”的表删除。

技术分享

2.批量修改表名

Select CONCAT( ‘ALTER TABLE ‘, table_name, ‘ RENAME TO ‘, table_name,‘;‘ )
FROM information_schema.tables
Where table_name LIKE ‘mytaobao_%‘;

执行上方的sql语句,将结果copy到editplus中,Ctrl+H 将RENAME TO mytaobao替换为RENAME TO newtaobao

技术分享

技术分享

以上是关于批量mysql修改表前缀的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL批量修改表前缀与表名sql语句

批量删除和修改特定前缀的mysql表

MYSQL数据表名称修改

sql中,如何批量修改字段的前缀如

批量修改表前缀

MYSQL数据表名称修改