2 ขั้นตอนสำคัญ
- โคลนโครงสร้าง: ใช้
CREATE TABLE ... LIKE - คัดลอกข้อมูล: ใช้
INSERT INTO ... SELECT * FROM
ไวยากรณ์
-- 1. สร้างโครงสร้างเหมือนกัน
CREATE TABLE new_table LIKE old_table;
-- 2. คัดลอกข้อมูลทั้งหมด
INSERT INTO new_table SELECT * FROM old_table;
ตัวอย่างการใช้งาน
ตารางต้นฉบับ
CREATE TABLE WholeWordMatchDemo (Words VARCHAR(200));
INSERT INTO WholeWordMatchDemo VALUES
('My Name is John'), ('Carol'), ('My Name is Johnson');
ขั้นตอนที่ 1: สร้างตารางใหม่โคลนโครงสร้าง
CREATE TABLE NewTableDuplicate LIKE WholeWordMatchDemo;
ตรวจสอบโครงสร้าง
SHOW CREATE TABLE NewTableDuplicate;
CREATE TABLE `newtableduplicate` (
`Words` varchar(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
ขั้นตอนที่ 2: คัดลอกข้อมูล
INSERT INTO NewTableDuplicate SELECT * FROM WholeWordMatchDemo;
ตรวจสอบข้อมูล
SELECT * FROM NewTableDuplicate;
+----------------------+
| Words |
+----------------------+
| My Name is John |
| Carol |
| My Name is Johnson |
+----------------------+
เปรียบเทียบกับตารางเดิม
SELECT * FROM WholeWordMatchDemo;
-- ผลลัพธ์เหมือนกันทุกประการ
สิ่งที่ LIKE คัดลอกได้ / ไม่ได้
| คัดลอกได้ | ไม่คัดลอกได้ |
|---|---|
| Column definitions, Data types | Data (ต้อง INSERT แยก) |
| Indexes (Primary, Unique, Normal) | AUTO_INCREMENT value |
| Default values | Triggers |
| Character set, Collation | Foreign Keys (ในบาง Version) |
| Storage Engine | Partitioning |
ทางเลือกอื่น: CREATE TABLE new_table AS SELECT * FROM old_table (คัดลอกทั้งโครงสร้างและข้อมูล แต่ไม่คัดลอก Indexes, Constraints, AUTO_INCREMENT)