Table Cloning trong MariaDB
Trong một số trường hợp, bạn cần tạo ra một bản sao chính xác của một bảng đã có. Tuy nhiên, câu lệnh CREATE...SELECT không thể tạo ra bản sao hoàn chỉnh này vì nó không bao gồm các thông tin như chỉ mục (indexes) và giá trị mặc định của các cột.

Quy trình để nhân đôi một bảng trong MariaDB
-
Lấy cấu trúc của bảng nguồn:
Sử dụng câu lệnh
SHOW CREATE TABLE
để tạo ra một câu lệnh CREATE TABLE mô tả đầy đủ cấu trúc của bảng nguồn. -
Chỉnh sửa và thực thi câu lệnh:
Bài viết này được đăng tại [free tuts .net]
Chỉnh sửa câu lệnh vừa lấy được để thay đổi tên bảng, sau đó thực thi câu lệnh đó để tạo bảng mới.
- Sao chép dữ liệu (nếu cần):
Nếu bạn cần sao chép dữ liệu từ bảng nguồn sang bảng mới, sử dụng câu lệnh INSERT INTO...SELECT. Ví dụ:
mysql> INSERT INTO inventory_copy_tbl ( product_id, product_name, product_manufacturer, ship_date) SELECT product_id, product_name, product_manufacturer, ship_date FROM inventory_tbl;
Ngoài ra, một phương pháp khác để tạo bản sao của bảng là sử dụng câu lệnh CREATE TABLE AS. Câu lệnh này sẽ sao chép tất cả các cột, định nghĩa của các cột và tự động điền dữ liệu từ bảng nguồn vào bảng mới.
Cú pháp chung của CREATE TABLE AS trong MariaDB
CREATE TABLE clone_tbl AS SELECT columns FROM original_tbl WHERE conditions;
Ví dụ cụ thể:
CREATE TABLE products_copy_tbl AS SELECT * FROM products_tbl;