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

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

สร้างตารางชั่วคราว

คีย์เวิร์ดชั่วคราวภายในคำสั่ง CREATE TABLE จะสร้างตารางชั่วคราว ตรวจสอบตัวอย่างด้านล่าง -

mysql>CREATE TEMPORARY TABLE order (
   item_name VARCHAR(50) NOT NULL
   , price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   , quantity INT UNSIGNED NOT NULL DEFAULT 0
);

ในการสร้างตารางชั่วคราวคุณสามารถโคลนตารางที่มีอยู่ซึ่งหมายถึงลักษณะทั่วไปทั้งหมดด้วยประโยค LIKE คำสั่ง CREATE TABLE ที่ใช้ในการวางไข่ตารางชั่วคราวจะไม่กระทำธุรกรรมอันเป็นผลมาจากคีย์เวิร์ด TEMPORARY

แม้ว่าตารางชั่วคราวจะแตกต่างจากแบบไม่ชั่วคราวและตกเมื่อสิ้นสุดเซสชัน แต่ก็อาจมีข้อขัดแย้ง -

  • บางครั้งอาจขัดแย้งกับตารางชั่วคราวแบบโกสต์จากเซสชันที่หมดอายุ

  • บางครั้งอาจขัดแย้งกับชื่อเงาของตารางที่ไม่ใช่ชั่วคราว

Note - ตารางชั่วคราวได้รับอนุญาตให้มีชื่อเดียวกับตารางที่ไม่ใช่ชั่วคราวที่มีอยู่เนื่องจาก MariaDB มองว่าเป็นการอ้างอิงที่แตกต่างกัน

ธุรการ

MariaDB ต้องการให้สิทธิ์แก่ผู้ใช้ในการสร้างตารางชั่วคราว ใช้คำสั่ง GRANT เพื่อมอบสิทธิพิเศษนี้ให้กับผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ

GRANT CREATE TEMPORARY TABLES ON orders TO 'machine122'@'localhost';

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

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

mysql> DROP TABLE order;