คุณสมบัติของ Temporary Table
CREATE TEMPORARY TABLE สร้างตารางชั่วคราวที่:
- มองเห็นได้เฉพาะ Session (Connection) ที่สร้างเท่านั้น
- ถูกลบอัตโนมัติเมื่อ Session จบสิ้นสุดหรือปิด Connection
- ไม่กระทบตารางหลักหรือ Session อื่น
- เหมาะสำหรับการคำนวณระหว่างทาง หรือเก็บข้อมูลชั่วคราว
รูปแบบคำสั่ง
CREATE TEMPORARY TABLE table_name (
column_name DATETIME
);
ตัวอย่างการใช้งาน
1. สร้าง Temporary Table
mysql> CREATE TEMPORARY TABLE DemoTable (
-> DueDate DATETIME
-> );
Query OK, 0 rows affected (0.00 sec)
2. เพิ่มข้อมูลวันที่หลากหลายรูปแบบ
mysql> INSERT INTO DemoTable VALUES(NOW());
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable VALUES(CURDATE());
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable VALUES('2018-01-21');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable VALUES('2019-12-31');
Query OK, 1 row affected (0.00 sec)
3. แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+---------------------+ | DueDate | +---------------------+ | 2019-10-27 18:07:41 | | 2019-10-27 00:00:00 | | 2018-01-21 00:00:00 | | 2019-12-31 00:00:00 | +---------------------+ 4 rows in set (0.00 sec)
ฟังก์ชันวันที่ที่ใช้บ่อย
| ฟังก์ชัน | คำอธิบาย | ตัวอย่างผลลัพธ์ |
|---|---|---|
| NOW() | วันที่และเวลาปัจจุบัน | 2019-10-27 18:07:41 |
| CURDATE() | วันที่ปัจจุบัน (เวลาเป็น 00:00:00) | 2019-10-27 00:00:00 |
| CURTIME() | เวลาปัจจุบัน | 18:07:41 |
| DATE() | ดึงเฉพาะวันที่จาก datetime | 2019-10-27 |
กรณีการใช้งาน Temporary Table
- เก็บผลลัพธ์ระหว่างการคำนวณซับซ้อน (Intermediate results)
- แบ่ง Query ใหญ่ๆ ออกเป็นขั้นตอนย่อย
- ทดสอบ Query โดยไม่กระทบข้อมูลจริง
- Import/Transform ข้อมูลชั่วคราวก่อน Insert เข้าตารางหลัก