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

Oracle Srang Tarang Chawkhraw



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

ใน 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 ตารางชั่วคราวมีประโยชน์สำหรับการจัดเก็บข้อมูลชั่วคราวที่จำเป็นสำหรับธุรกรรมหรือเซสชันเท่านั้น คำสั่ง 'สร้างตารางชั่วคราว' ช่วยให้คุณสามารถกำหนดโครงสร้างและคอลัมน์ของตารางชั่วคราว และระบุวิธีจัดการแถวเมื่อธุรกรรมถูกคอมมิต ด้วยเหตุนี้ การใช้ตารางชั่วคราวสามารถปรับปรุงประสิทธิภาพและประสิทธิภาพของแบบสอบถามและแอปพลิเคชันของคุณ และลดจำนวนพื้นที่จัดเก็บถาวรที่ต้องใช้ในฐานข้อมูลของคุณ