如何快速重命名MySQL数据库(更改架构名称)?MySQL手册MySQL包括这个。通常,我只是转储数据库并用一个新的名称重新导入它。对于大型数据库来说,这不是一种选择。显然RENAME {DATABASE | SCHEMA} db_name TO new_db_name; 做坏事,只存在于少数几个版本中,总的来说是个坏主意。.这需要配合InnoDB,它的存储方式与MyISAM.
3 回答
白板的微信
TA贡献1883条经验 获得超3个赞
RENAME TABLE old_db.table TO new_db.table;
mysql -u username -ppassword old_db -sNe 'show tables' | while read table; \ do mysql -u username -ppassword -sNe "rename table old_db.$table to new_db.$table"; done
for table in `mysql -u root -ppassword -s -N -e "use old_db;show tables from old_db;"`; do mysql -u root -ppassword -s -N -e "use old_db;rename table old_db.$table to new_db.$table;"; done;
选项之间没有空间。 -p
还有密码。如果数据库没有密码,请删除 -u username -ppassword
部分。 如果某个表具有触发器,则不能使用上述方法将其移动到另一个数据库(将导致 Trigger in wrong schema
错误)。如果是这样的话,使用传统的方法克隆数据库,然后删除旧的数据库: mysqldump old_db | mysql new_db
如果您有存储过程,则可以在以后复制它们: mysqldump -R old_db | mysql new_db
慕勒3428872
TA贡献1848条经验 获得超6个赞
mysqldump -u username -p -v olddatabase > olddbdump.sql mysqladmin -u username -p create newdatabase mysql -u username -p newdatabase < olddbdump.sql
mysqladmin -u username -p create newdatabase mysqldump -u username -v olddatabase -p | mysql -u username -p -D newdatabase
凤凰求蛊
TA贡献1825条经验 获得超4个赞
添加回答
举报
0/150
提交
取消