ตารางชั่วคราวสากลมีประโยชน์เมื่อจัดเก็บข้อมูลชั่วคราวที่จำเป็นสำหรับธุรกรรมหรือระยะเวลาเซสชันเท่านั้น ซึ่งแตกต่างจากตารางทั่วไป ตารางชั่วคราวส่วนกลางจะถูกทิ้งโดยอัตโนมัติเมื่อเซสชันหรือธุรกรรมสิ้นสุดลง ดังนั้นจึงไม่จำเป็นต้องทิ้งอย่างชัดเจนเหมือนตารางทั่วไป อย่างไรก็ตาม ตารางชั่วคราวส่วนกลางจะมองเห็นได้เฉพาะในเซสชันปัจจุบันเท่านั้น ดังนั้นเซสชันหรือผู้ใช้อื่นจึงเข้าถึงไม่ได้
ใน Oracle ตารางชั่วคราวส่วนกลางเป็นตารางชนิดพิเศษที่สร้างขึ้นโดยใช้คำสั่ง 'สร้างตารางชั่วคราวส่วนกลาง' คำสั่งนี้คล้ายกับคำสั่ง 'สร้างตาราง' ทั่วไป แต่มีคำหลัก 'สากลชั่วคราว' เพื่อระบุว่าตารางนั้นเป็นตารางชั่วคราวส่วนกลาง
ไวยากรณ์ของคำสั่ง 'CREATE GLOBAL TEMPORARY TABLE' เป็นดังนี้:
สร้างตารางชั่วคราวทั่วโลก table_name (
ประเภทข้อมูลของคอลัมน์ 1 [NULL | ไม่เป็นโมฆะ],
ประเภทข้อมูล column2 [NULL | ไม่เป็นโมฆะ],
...
) [เมื่อตกลง {ลบ | รักษา} แถว];
ในไวยากรณ์นี้ table_name คือชื่อของตารางชั่วคราวส่วนกลางที่คุณต้องการสร้าง คอลัมน์ 1 คอลัมน์ 2 ฯลฯ คือชื่อและชนิดข้อมูลของคอลัมน์ในตาราง
ส่วนคำสั่ง ON COMMIT ระบุว่าแถวในตารางจะถูกลบหรือคงไว้เมื่อธุรกรรมปัจจุบันถูกคอมมิต เอ็นจินฐานข้อมูลจะใช้ตัวเลือก ON COMMIT DELETE ROWS ถ้าไม่ได้กำหนดส่วนคำสั่ง ON COMMIT
ตามที่กล่าวไว้ โปรดทราบว่าข้อมูลในตารางชั่วคราวเป็นแบบส่วนตัว ซึ่งหมายความว่าไม่มีเซสชันอื่นนอกเหนือจากที่สร้างตารางไม่สามารถเข้าถึงได้
การสร้างตัวอย่างตารางชั่วคราวส่วนกลาง
ให้เราค้นพบตัวอย่างที่ใช้ได้จริงของการใช้คำสั่งสร้างตารางชั่วคราวในฐานข้อมูล Oracle
พิจารณาตัวอย่างข้อความค้นหาที่แสดงด้านล่าง:
สร้างตารางชั่วคราวทั่วโลก temp_sales (หมายเลข product_id (10) ไม่เป็นโมฆะ
sale_date วันที่ไม่เป็นโมฆะ
sale_amount จำนวน (10,2) ไม่เป็นโมฆะ
) บนคอมมิตลบแถว;
ในตัวอย่างข้างต้น เราสร้างตารางชั่วคราวโดยใช้ตัวเลือก ON COMMIT DELETE ROWS
จากนั้นเราสามารถแทรกข้อมูลตัวอย่างได้ดังนี้:
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (1, DATE '2022-10-01', 100);INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (3, DATE '2022-10-03', 130);
หลังจากนั้น คุณสามารถทำธุรกรรมได้ดังนี้:
ให้สัญญา;หลังจากคอมมิท โปรแกรมฐานข้อมูลจะตัดทอนข้อมูลทั้งหมดในตารางชั่วคราวตามที่ระบุในคอมมิท
ตัวอย่างที่ 2
ตัวอย่างต่อไปนี้แสดงวิธีสร้างตารางที่รักษาแถวในการคอมมิต:
สร้างตารางชั่วคราวทั่วโลก temp_sales (หมายเลข product_id (10) ไม่เป็นโมฆะ
sale_date วันที่ไม่เป็นโมฆะ
sale_amount จำนวน (10,2) ไม่เป็นโมฆะ
) บน COMMIT PRESERVE ROWS ;
จากนั้น เราสามารถเพิ่มแถวตัวอย่างและคอมมิตดังที่แสดง:
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (1, DATE '2022-10-01', 100);INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (3, DATE '2022-10-03', 130);
ให้สัญญา;
ในกรณีนี้ ข้อมูลควรถูกรักษาไว้หลังจากดำเนินการส่ง ดังที่แสดงโดยคำสั่ง select ด้านล่าง:
เลือก * จาก TEMP_SALES;เอาท์พุต:
บทสรุป
คำสั่ง 'สร้างตารางชั่วคราว' เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการสร้างตารางชั่วคราวใน Oracle ตารางชั่วคราวมีประโยชน์สำหรับการจัดเก็บข้อมูลชั่วคราวที่จำเป็นสำหรับธุรกรรมหรือเซสชันเท่านั้น คำสั่ง 'สร้างตารางชั่วคราว' ช่วยให้คุณสามารถกำหนดโครงสร้างและคอลัมน์ของตารางชั่วคราว และระบุวิธีจัดการแถวเมื่อธุรกรรมถูกคอมมิต ด้วยเหตุนี้ การใช้ตารางชั่วคราวสามารถปรับปรุงประสิทธิภาพและประสิทธิภาพของแบบสอบถามและแอปพลิเคชันของคุณ และลดจำนวนพื้นที่จัดเก็บถาวรที่ต้องใช้ในฐานข้อมูลของคุณ