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

Tạo bản sao (clone) bảng MySQL chính xác

Đôi khi cần bản sao y hệt bảng (cấu trúc, index, default...). CREATE TABLE ... SELECT không đủ. Các bước:

  1. Dùng SHOW CREATE TABLE lấy câu lệnh tạo bảng gốc (có cấu trúc, index, default...).
  2. Sửa tên bảng trong câu lệnh đó thành tên bảng clone và thực thi.
  3. Tùy chọn: copy dữ liệu bằng INSERT INTO ... SELECT.

Ví dụ

Clone bảng tutorials_tbl.

Bước 1 - Lấy cấu trúc đầy đủ:

mysql> SHOW CREATE TABLE tutorials_tbl \G;
*************************** 1. row ***************************
Table: tutorials_tbl
Create Table: CREATE TABLE `tutorials_tbl` (
  `tutorial_id` int(11) NOT NULL auto_increment,
  `tutorial_title` varchar(100) NOT NULL default '',
  `tutorial_author` varchar(40) NOT NULL default '',
  `submission_date` date default NULL,
  PRIMARY KEY (`tutorial_id`),
  UNIQUE KEY `AUTHOR_INDEX` (`tutorial_author`)
) TYPE = MyISAM
1 row in set (0.00 sec)

Bước 2 - Tạo bảng clone với cấu trúc y hệt:

mysql> CREATE TABLE clone_tbl (
    -> tutorial_id int(11) NOT NULL auto_increment,
    -> tutorial_title varchar(100) NOT NULL default '',
    -> tutorial_author varchar(40) NOT NULL default '',
    -> submission_date date default NULL,
    -> PRIMARY KEY (tutorial_id),
    -> UNIQUE KEY AUTHOR_INDEX (tutorial_author)
    -> ) TYPE = MyISAM;
Query OK, 0 rows affected (1.80 sec)

Bước 3 - Copy dữ liệu (tùy chọn):

mysql> INSERT INTO clone_tbl (tutorial_id, tutorial_title, tutorial_author, submission_date)
    -> SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
    -> FROM tutorials_tbl;
Query OK, 3 rows affected (0.07 sec)
Records: 3  Duplicates: 0  Warnings: 0

Đã có bản clone chính xác.