ใช้ CREATE TABLE ... SELECT เพื่อสร้างตารางใหม่พร้อมคัดลอกข้อมูลจากคอลัมน์ที่ต้องการ
ตัวอย่างการใช้งาน
1. ตารางต้นทาง (DemoTable1)
mysql> create table DemoTable1 (Id int, Name varchar(100)); mysql> insert into DemoTable1 values(10,'John'), (11,'Chris'), (12,'Robert');
2. คัดลอกเฉพาะคอลัมน์ Name ที่ Id=11
mysql> create table DemoTable2 (
-> select Name from DemoTable1 where Id=11
-> );
ผลลัพธ์ตารางใหม่ (DemoTable2)
+-------+ | Name | +-------+ | Chris | +-------+
รูปแบบต่างๆ ของ CREATE TABLE ... SELECT
-- คัดลอกทุกคอลัมน์ ทุกแถว CREATE TABLE new_table AS SELECT * FROM old_table; -- คัดลอกบางคอลัมน์ เปลี่ยนชื่อคอลัมน์ CREATE TABLE new_table SELECT id AS user_id, name FROM old_table; -- คัดลอกโครงสร้างอย่างเดียว (ไม่เอาข้อมูล) CREATE TABLE new_table LIKE old_table; -- หรือ CREATE TABLE new_table SELECT * FROM old_table WHERE 1=0;
ข้อจำกัด
- ไม่คัดลอก
PRIMARY KEY,AUTO_INCREMENT,INDEX,FOREIGN KEY,DEFAULT,TRIGGER - ต้องเพิ่ม Constraint เองหลังสร้างตาราง
- ใช้
CREATE TABLE new_table LIKE old_tableแล้วค่อยINSERT ... SELECTหากต้องการโครงสร้างเหมือนเดิม