สร้างตารางใหม่จากผลลัพธ์ SELECT ใน MySQL
MySQL ไม่มี SELECT INTO เช่น SQL Server ใช้ CREATE TABLE ... AS SELECT แทน
ไวยากรณ์
CREATE TABLE yourNewTableName AS SELECT * FROM yourTableName;
ตัวอย่าง
CREATE TABLE selectIntoEquivalentDemo (
ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName VARCHAR(20),
ClientAge INT
);
INSERT INTO selectIntoEquivalentDemo(ClientName, ClientAge) VALUES
('Larry', 34), ('Maxwell', 44), ('Bob', 38), ('David', 39);
สร้างตารางใหม่จากข้อมูลเดิม
CREATE TABLE Client_information AS SELECT * FROM selectIntoEquivalentDemo;
ผลลัพธ์
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 1 | Larry | 34 | | 2 | Maxwell | 44 | | 3 | Bob | 38 | | 4 | David | 39 | +----------+------------+-----------+
ข้อควรระวัง
- ไม่คัดลอก Index, Primary Key, Auto Increment, Foreign Key
- คัดลอกเฉพาะโครงสร้างคอลัมน์และข้อมูล
- ต้องเพิ่ม Constraint เองหลังสร้างตาราง
ตัวเลือกอื่น: CREATE TABLE LIKE + INSERT
CREATE TABLE new_table LIKE old_table; INSERT INTO new_table SELECT * FROM old_table;
วิธีนี้คัดลอกโครงสร้างเต็มรูปแบบ (รวม Index, PK)