2014-09-30 71 views
2

無法使用以下查詢重命名數據庫。我正在使用mysql2Mysql重命名數據庫不起作用

RENAME DATABASE a to b; 

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database a to b' at line 1 

我是mysql新手。什麼是正確的語法?

+0

可能重複[我如何快速重命名mysql數據庫(更改模式名稱)?](http://stackoverflow.com/questions/67093/how-do-i-quickly-rename-a-mysql-database -change-schema-name) – 2014-09-30 13:02:07

+6

刪除了該命令,請參閱 - http://dev.mysql.com/doc/refman/5.1/en/rename-database.html。改用ALTER DATABASE。 – Giles 2014-09-30 13:04:03

+0

@Giles - 將數據庫a改爲b;這也會引發錯誤 – Sam 2014-09-30 13:21:49

回答

0

我想你應該創建一個新的數據庫並重命名這些表,以便它們將在新的數據庫中,並且之後可以刪除舊數據庫。

找到更多在這裏:https://blog.marceloaltmann.com/how-to-rename-a-database-in-mysql/

但基本上是這樣的:

CREATE DATABASE my_new_database; 
RENAME TABLE my_old_database.tbl_name TO my_new_database.tbl_name; 
DROP DATABASE my_old_database; 

使用來自鏈接上面的腳本將允許您使用所有的表,所以這幾乎可以自動完成。

(我的意思是這樣的:SELECT CONCAT('RENAME TABLE ', GROUP_CONCAT(table_schema,'.',table_name, ' TO ','new_schema.',table_name,' '),';') as stmt FROM information_schema.TABLES WHERE table_schema LIKE 'oldSchema' GROUP BY table_schema