加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql怎样修改表名

发布时间:2022-01-05 18:37:56 所属栏目:MySql教程 来源:互联网
导读:小编给大家分享一下mysql怎样修改表名,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 如果表示MyISAM那么可以直接去到数据库目录mv就可以。 Innodb完全不行,自己测试过,
小编给大家分享一下mysql怎样修改表名,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
 
如果表示MyISAM那么可以直接去到数据库目录mv就可以。
 
Innodb完全不行,自己测试过,会提示相关表不存在。
 
第一种方法:
 
RENAME database olddbname TO newdbname
这个是5.1.7到5.1.23版本可以用的,但是官方不推荐,会有丢失数据的危险
 
第二种方法:
 
1.创建需要改成新名的数据库。
2.mysqldum 导出要改名的数据库
3.删除原来的旧库(确定是否真的需要)
当然这种方法虽然安全,但是如果数据量大,会比较耗时,哎,当时连这种方法都没有想到,真有想死的冲动。
 
第三种方法:
 
我这里就用一个脚本,很简单,相信大家都看的懂
 
#!/bin/bash
# 假设将sakila数据库名改为new_sakila
# MyISAM直接更改数据库目录下的文件即可
 
 
mysql -uroot -p123456 -e 'create database if not exists new_sakila'
list_table=$(mysql -uroot -p123456 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='sakila'")
 
 
for table in $list_table
do
    mysql -uroot -p123456 -e "rename table sakila.$table to new_sakila.$table"
done
 
 
这里用到了rename table,改表名的命令,但是如果新表名后面加数据库名,就会将老数据库的表移动到新的数据库,所以,这种方法即安全,又快速。

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!