ทริกเกอร์กับเคอร์เซอร์
ในฐานข้อมูล ทริกเกอร์คือโพรซีเดอร์ (เซ็กเมนต์โค้ด) ที่ดำเนินการโดยอัตโนมัติเมื่อเหตุการณ์บางอย่างเกิดขึ้นในตาราง/มุมมอง ในบรรดาการใช้งานอื่นๆ ทริกเกอร์ส่วนใหญ่จะใช้เพื่อรักษาความสมบูรณ์ในฐานข้อมูล เคอร์เซอร์เป็นโครงสร้างการควบคุมที่ใช้ในฐานข้อมูลเพื่อผ่านระเบียนฐานข้อมูล มันคล้ายกับตัววนซ้ำที่มีให้ในการเขียนโปรแกรมภาษาต่างๆ
ทริกเกอร์คืออะไร
ทริกเกอร์คือโพรซีเดอร์ (เซ็กเมนต์โค้ด) ที่ดำเนินการโดยอัตโนมัติเมื่อเหตุการณ์บางอย่างเกิดขึ้นในตาราง/มุมมองของฐานข้อมูล ในบรรดาการใช้งานอื่นๆ ทริกเกอร์ส่วนใหญ่จะใช้เพื่อรักษาความสมบูรณ์ในฐานข้อมูลทริกเกอร์ยังใช้เพื่อบังคับใช้กฎธุรกิจ ตรวจสอบการเปลี่ยนแปลงในฐานข้อมูล และจำลองข้อมูล ทริกเกอร์ที่พบบ่อยที่สุดคือทริกเกอร์ Data Manipulation Language (DML) ที่ทริกเกอร์เมื่อมีการจัดการข้อมูล ระบบฐานข้อมูลบางระบบรองรับทริกเกอร์ที่ไม่ใช่ข้อมูล ซึ่งจะทริกเกอร์เมื่อเหตุการณ์ Data Definition Language (DDL) เกิดขึ้น ตัวอย่างบางส่วนคือทริกเกอร์ที่เริ่มทำงานเมื่อมีการสร้างตาราง ระหว่างการดำเนินการคอมมิตหรือการย้อนกลับ ฯลฯ ทริกเกอร์เหล่านี้สามารถใช้สำหรับการตรวจสอบโดยเฉพาะ ระบบฐานข้อมูล Oracle รองรับทริกเกอร์ระดับสคีมา (เช่น ทริกเกอร์เริ่มทำงานเมื่อมีการแก้ไขสคีมาฐานข้อมูล) เช่น After Creation, Before Alter, After Alter, Before Drop, After Drop เป็นต้น ทริกเกอร์หลักสี่ประเภทที่ Oracle รองรับคือทริกเกอร์ระดับแถว ทริกเกอร์ระดับคอลัมน์ ทริกเกอร์แต่ละประเภทแถว และทริกเกอร์สำหรับแต่ละประเภทคำสั่ง
เคอร์เซอร์คืออะไร
เคอร์เซอร์เป็นโครงสร้างการควบคุมที่ใช้ในฐานข้อมูลเพื่อผ่านระเบียนของฐานข้อมูลมันคล้ายกับตัววนซ้ำที่จัดเตรียมโดยภาษาโปรแกรมหลายภาษา นอกจากการข้ามผ่านระเบียนในฐานข้อมูลแล้ว เคอร์เซอร์ยังอำนวยความสะดวกในการดึงข้อมูล เพิ่มและลบบันทึกอีกด้วย โดยการกำหนดวิธีที่ถูกต้อง ยังสามารถใช้เคอร์เซอร์เพื่อย้อนกลับได้อีกด้วย เมื่อคิวรี SQL ส่งคืนชุดของแถว คิวรีเหล่านั้นจะถูกประมวลผลโดยใช้เคอร์เซอร์ เคอร์เซอร์ต้องได้รับการประกาศและกำหนดชื่อก่อนจึงจะสามารถใช้งานได้ จากนั้นเคอร์เซอร์จะต้องเปิดโดยใช้คำสั่ง OPEN การดำเนินการนี้จะวางเคอร์เซอร์ไว้ข้างหน้าแถวแรกของชุดผลลัพธ์ของเร็กคอร์ด จากนั้นเคอร์เซอร์จะต้องดำเนินการ FETCH เพื่อรับแถวข้อมูลในแอปพลิเคชันจริง สุดท้าย เคอร์เซอร์จะต้องปิดโดยใช้การดำเนินการ CLOSE สามารถเปิดเคอร์เซอร์ที่ปิดได้อีกครั้ง
ทริกเกอร์และเคอร์เซอร์ต่างกันอย่างไร
ทริกเกอร์คือโพรซีเดอร์ (เซ็กเมนต์โค้ด) ที่ดำเนินการโดยอัตโนมัติเมื่อเหตุการณ์เฉพาะบางอย่างเกิดขึ้นในตาราง/มุมมองของฐานข้อมูล ในขณะที่เคอร์เซอร์เป็นโครงสร้างการควบคุมที่ใช้ในฐานข้อมูลเพื่อผ่านระเบียนของฐานข้อมูลเคอร์เซอร์สามารถประกาศและใช้ภายในทริกเกอร์ได้ ในสถานการณ์เช่นนี้ คำสั่งประกาศจะอยู่ภายในทริกเกอร์ จากนั้นขอบเขตของเคอร์เซอร์จะจำกัดอยู่ที่ทริกเกอร์นั้น ภายในทริกเกอร์ หากมีการประกาศเคอร์เซอร์บนตารางที่แทรกหรือลบ เคอร์เซอร์ดังกล่าวจะไม่สามารถเข้าถึงได้จากทริกเกอร์ที่ซ้อนกัน เมื่อทริกเกอร์เสร็จสิ้น เคอร์เซอร์ทั้งหมดที่สร้างขึ้นภายในทริกเกอร์จะถูกยกเลิกการจัดสรร