MySQL - ตารางชั่วคราว

ตารางชั่วคราวอาจมีประโยชน์มากในบางกรณีเพื่อเก็บข้อมูลชั่วคราว สิ่งที่สำคัญที่สุดที่ควรทราบสำหรับตารางชั่วคราวคือตารางเหล่านั้นจะถูกลบเมื่อเซสชันไคลเอ็นต์ปัจจุบันสิ้นสุดลง

ตารางชั่วคราวคืออะไร?

มีการเพิ่มตารางชั่วคราวใน MySQL เวอร์ชัน 3.23 หากคุณใช้ MySQL เวอร์ชันเก่ากว่า 3.23 คุณจะไม่สามารถใช้ตารางชั่วคราวได้ แต่คุณสามารถใช้ได้Heap Tables.

ตามที่ระบุไว้ก่อนหน้านี้ตารางชั่วคราวจะคงอยู่ตราบเท่าที่เซสชันยังมีชีวิตอยู่ หากคุณรันโค้ดในสคริปต์ PHP ตารางชั่วคราวจะถูกทำลายโดยอัตโนมัติเมื่อสคริปต์ทำงานเสร็จสิ้น หากคุณเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูล MySQL ผ่านโปรแกรมไคลเอนต์ MySQL ตารางชั่วคราวจะมีอยู่จนกว่าคุณจะปิดไคลเอนต์หรือทำลายตารางด้วยตนเอง

ตัวอย่าง

โปรแกรมต่อไปนี้เป็นตัวอย่างที่แสดงการใช้งานตารางชั่วคราว สามารถใช้รหัสเดียวกันในสคริปต์ PHP โดยใช้ไฟล์mysql_query() ฟังก์ชัน

mysql> CREATE TEMPORARY TABLE SalesSummary (
   -> product_name VARCHAR(50) NOT NULL
   -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
   -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO SalesSummary
   -> (product_name, total_sales, avg_unit_price, total_units_sold)
   -> VALUES
   -> ('cucumber', 100.25, 90, 2);

mysql> SELECT * FROM SalesSummary;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
|   cucumber   |   100.25    |     90.00      |         2        |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)

เมื่อคุณออกไฟล์ SHOW TABLESจากนั้นตารางชั่วคราวของคุณจะไม่ปรากฏในรายการ ตอนนี้ถ้าคุณจะออกจากเซสชัน MySQL จากนั้นคุณจะออกไฟล์SELECTจากนั้นคุณจะพบว่าไม่มีข้อมูลในฐานข้อมูล แม้แต่โต๊ะชั่วคราวของคุณก็ไม่มีอยู่จริง

การวางตารางชั่วคราว

ตามค่าเริ่มต้นตารางชั่วคราวทั้งหมดจะถูกลบโดย MySQL เมื่อการเชื่อมต่อฐานข้อมูลของคุณถูกยกเลิก หากคุณต้องการลบระหว่างนั้นคุณสามารถทำได้โดยการออกไฟล์DROP TABLE คำสั่ง

โปรแกรมต่อไปนี้เป็นตัวอย่างในการวางตารางชั่วคราว -

mysql> CREATE TEMPORARY TABLE SalesSummary (
   -> product_name VARCHAR(50) NOT NULL
   -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
   -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO SalesSummary
   -> (product_name, total_sales, avg_unit_price, total_units_sold)
   -> VALUES
   -> ('cucumber', 100.25, 90, 2);

mysql> SELECT * FROM SalesSummary;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
|   cucumber   |   100.25    |     90.00      |         2        |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)
mysql> DROP TABLE SalesSummary;
mysql>  SELECT * FROM SalesSummary;
ERROR 1146: Table 'TUTORIALS.SalesSummary' doesn't exist