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;