当需要将 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; |