Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สร้าง Temporary Table คล้ายตารางปกติใน MySQL ด้วย CREATE TEMPORARY TABLE ... LIKE

การสร้าง Temporary Table โครงสร้างเหมือนตารางเดิมด้วย LIKE

คำสั่ง CREATE TEMPORARY TABLE new_table LIKE existing_table จะสร้างตารางชั่วคราว (Temporary Table) ที่มีโครงสร้าง (Columns, Indexes, Engine) เหมือนตารางเดิมทุกประการ แต่ไม่คัดลอกข้อมูล

สร้างตารางปกติและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable1 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(100)
);
Query OK, 0 rows affected (0.59 sec)

mysql> INSERT INTO DemoTable1(Name) VALUES('Chris');
mysql> INSERT INTO DemoTable1(Name) VALUES('Robert');
mysql> INSERT INTO DemoTable1(Name) VALUES('Mike');
mysql> INSERT INTO DemoTable1(Name) VALUES('Sam');

สร้าง Temporary Table LIKE ตารางเดิม

mysql> CREATE TEMPORARY TABLE DemoTable2 LIKE DemoTable1;
Query OK, 0 rows affected (0.04 sec)

ตรวจสอบโครงสร้าง Temporary Table

mysql> DESC DemoTable2;

ผลลัพธ์:

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| Id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| Name  | varchar(100) | YES  |     | NULL    | NULL           |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.04 sec)

คำอธิบาย

  • TEMPORARY : ตารางจะหายไปอัตโนมัติเมื่อ Session จบ (Disconnect)
  • LIKE DemoTable1 : คัดลอกโครงสร้างทั้งหมด (Columns, Indexes, PK, Auto Increment, Engine)
  • ไม่คัดลอกข้อมูล (Data) - ตารางใหม่ว่างเปล่า
  • เหมาะสำหรับการประมวลผลระหว่างทาง (Intermediate results) ใน Stored Procedure หรือ Script
  • ผู้ใช้อื่นไม่เห็น Temporary Table ของ Session นี้