Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách clone bảng MySQL (cấu trúc, index, dữ liệu)

Sử dụng CREATE TABLE ... LIKE sao chép cấu trúc + index, sau đó INSERT ... SELECT sao chép dữ liệu.

Ví dụ clone bảng student

Bảng gốc:

mysql> DESC student;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | YES  | MUL | NULL    |       |
| Name  | varchar(100) | YES  | MUL | NULL    |       |
+-------+--------------+------+-----+---------+-------+

mysql> SELECT * FROM student;
+------+------+
| id   | Name |
+------+------+
| 1    | John |
| 2    | Bob  |
+------+------+

Clone

mysql> CREATE TABLE cloneStudent LIKE student;
Query OK, 0 rows affected (1.57 sec)

mysql> INSERT INTO cloneStudent SELECT * FROM student;
Query OK, 2 rows affected (0.60 sec)

Kiểm tra

Cấu trúc (index giữ nguyên):

mysql> DESC cloneStudent;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | YES  | MUL | NULL    |       |
| Name  | varchar(100) | YES  | MUL | NULL    |       |
+-------+--------------+------+-----+---------+-------+

Dữ liệu:

mysql> SELECT * FROM cloneStudent;
+------+------+
| id   | Name |
+------+------+
| 1    | John |
| 2    | Bob  |
+------+------+

Lưu ý: LIKE không sao chép DATA DIRECTORY, INDEX DIRECTORY, khóa ngoại (foreign keys), trigger, partition. Chỉ sao chép định nghĩa cột, index, engine, collation.