當需要將 MySQL 資料表完整複製時, 如果資料表是使用 MyISAM 儲存引擎, 可以直接停止 MySQL 伺服器, 再將資料表的 .MYD 及 MYI 檔案複製。但如果資料表是 InnoDB, 或者不想停止 MySQL 運作, 除了用傳統的備份方法外, MySQL 已經內建了複製的功能, 具體做法如下。
假設舊資料表是 old_table, 新資料表是 new_table, 可以執行以下 SQL Query:
1 2 |
CREATE TABLE new_table LIKE old_table; INSERT new_table SELECT * FROM old_table; |
用這種方法複製的資料表, 會將資料表結構, 資料及 Table schema 一同複製。
如果想在兩個不同的資料庫間複製資料表, 可以將資料表前面加上資料庫名稱, 例如想將 db_1 的 old_table, 複製到 db_2 的 new_table, 可以這樣寫:
1 2 |
CREATE TABLE db_2.new_table LIKE db_1.old_table; INSERT db_2.new_table SELECT * FROM db_1.old_table; |