Sử dụng câu lệnh CREATE TABLE ... AS SELECT để tạo bảng mới từ kết quả truy vấn của bảng cũ.
Ví dụ minh họa
Tạo bảng gốc:
mysql> CREATE TABLE DemoTable1318 (
Id INT,
FirstName VARCHAR(10),
LastName VARCHAR(10),
Age INT
);
Chèn dữ liệu:
mysql> INSERT INTO DemoTable1318 VALUES(1, 'Chris', 'Brown', 21); mysql> INSERT INTO DemoTable1318 VALUES(2, 'David', 'Miller', 24); mysql> INSERT INTO DemoTable1318 VALUES(3, 'Carol', 'Taylor', 23);
Xem dữ liệu:
mysql> SELECT * FROM DemoTable1318;
+------+-----------+----------+------+ | Id | FirstName | LastName | Age | +------+-----------+----------+------+ | 1 | Chris | Brown | 21 | | 2 | David | Miller | 24 | | 3 | Carol | Taylor | 23 | +------+-----------+----------+------+
Tạo bảng mới chỉ lấy hàng có Age là 21 hoặc 23:
mysql> CREATE TABLE DemoTable1319
AS SELECT * FROM DemoTable1318
WHERE Age IN (21, 23);
Kiểm tra bảng mới:
mysql> SELECT * FROM DemoTable1319;
+------+-----------+----------+------+ | Id | FirstName | LastName | Age | +------+-----------+----------+------+ | 1 | Chris | Brown | 21 | | 3 | Carol | Taylor | 23 | +------+-----------+----------+------+
Lưu ý quan trọng:
- Bảng mới không kế thừa khóa chính, khóa ngoại, index, AUTO_INCREMENT, DEFAULT từ bảng gốc.
- Chỉ sao chép cấu trúc cột (tên, kiểu dữ liệu) và dữ liệu.
- Để giữ ràng buộc, hãy tạo bảng trước rồi
INSERT ... SELECT.