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

Cách sao chép cấu trúc bảng trong MySQL

Để sao chép cấu trúc bảng trong MySQL, sử dụng mệnh đề LIKE.

Tạo bảng gốc

mysql> create table DemoTable1 (
    -> StudentId int,
    -> StudentName varchar(20)
    -> );
Query OK, 0 rows affected (0.55 sec)

Chèn dữ liệu vào bảng gốc

mysql> insert into DemoTable1 values(100, 'John');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1 values(101, 'Sam');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1 values(102, 'Carol');
Query OK, 1 row affected (0.15 sec)

Hiển thị dữ liệu bảng gốc

mysql> select * from DemoTable1;

Kết quả

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 100       | John        |
| 101       | Sam         |
| 102       | Carol       |
+-----------+-------------+
3 rows in set (0.00 sec)

Sao chép cấu trúc sang bảng mới

mysql> create table DemoTable2 LIKE DemoTable1;
Query OK, 0 rows affected (0.53 sec)

Kiểm tra cấu trúc bảng mới

mysql> show create table DemoTable2;

Kết quả - Cấu trúc y hệt, nhưng không có dữ liệu

+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table        | Create Table                                                                                                                                                                                   |
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| DemoTable2   | CREATE TABLE `demotable2` (`StudentId` int(11) DEFAULT NULL, `StudentName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

Đặc điểm của CREATE TABLE ... LIKE:

  • Sao chép: định nghĩa cột, index, khóa chính, khóa ngoại, engine, charset, collation.
  • Không sao chép: dữ liệu, AUTO_INCREMENT value, trigger, partition, foreign key constraints (chỉ định nghĩa).

Để sao chép cả dữ liệu: CREATE TABLE DemoTable3 AS SELECT * FROM DemoTable1; (nhưng không copy index/PK).