我的所有表都有前缀bn_
。例如,表格将命名为bn_blast
。
要运行的任何SQL命令都会删除所有表中的所有前缀吗?
答案 0 :(得分:2)
这是一个单行。
在控制台中:
mysql -u root -p -AN -e"选择concat(' RENAME TABLE',concat(table_name,concat(' TO',concat(substr(table_name,4),';')) ))来自information_schema.tables,其中table_schema =' db_name' " > renaming.sql
出现提示时输入密码。
打开" renaming.sql"文件,在第一行,添加"使用db_name;"然后保存。 然后,执行以下操作:
mysql -u root -p< renaming.sql
出现提示时输入密码。
现在,检查你的表格:
显示表格;
输出:之前
mysql> show tables;
+---------------------+
| Tables_in_STACK |
+---------------------+
| db_answer |
| db_answers |
| db_circle |
| db_fee |
| db_housing |
| db_im_originals |
| db_im_savegroups |
| db_im_savespecs |
| db_location_share |
| db_order1 |
| db_orderitems |
| db_patientinfo |
| db_quest |
| db_share |
| db_t2 |
| db_tbdatabaseerrors |
| db_tblchanges |
| db_test |
| db_test1 |
| db_test_fid |
| db_test_table |
| db_testing |
| db_user |
+---------------------+
输出:
之后mysql> show tables;
+-------------------+
| Tables_in_STACK |
+-------------------+
| answer |
| answers |
| circle |
| fee |
| housing |
| im_originals |
| im_savegroups |
| im_savespecs |
| location_share |
| order1 |
| orderitems |
| patientinfo |
| quest |
| share |
| t2 |
| tbdatabaseerrors |
| tblchanges |
| test |
| test1 |
| test_fid |
| test_table |
| testing |
| user |
+-------------------+
答案 1 :(得分:1)
使用phpMyAdmin删除MySQL数据库中所有表的公共前缀:
选择数据库。
转到" 结构"标签
滚动到底部,然后点击" 全部检查"复选框。这将选择所有表格。
在" 已选中:"旁边的下拉列表,选择" 替换表格前缀"。这将带您进入"替换表前缀"页。
在" 来自"字段,键入要删除的前缀,例如shop_
。
在" 到"字段,留空。
点击" 提交" ...然后繁荣!完成!
您可以以类似的方式添加或重命名前缀。
提示:如果您的数据库有许多其他表,并且您只想选择包含某个字符串的表,则可以使用调试JavaScript控制台。例如,要选择包含shop_
的所有表,请运行以下命令:
$('form[name=tablesForm]').find('th:contains(shop_)').closest('tr').children(':first-child')
.find(':input[type=checkbox]').prop('checked', true)