Pencetus vs kursor
Dalam pangkalan data, pencetus adalah prosedur (segmen kod) yang dilaksanakan secara automatik apabila beberapa peristiwa tertentu berlaku dalam jadual/paparan. Antara kegunaannya yang lain, pencetus digunakan terutamanya untuk mengekalkan integriti dalam pangkalan data. Kursor adalah struktur kawalan yang digunakan dalam pangkalan data untuk melalui rekod pangkalan data. Ia sangat serupa dengan iterator yang disediakan oleh banyak bahasa pengaturcaraan.
Apa yang dicetuskan?
Pencetus adalah prosedur (segmen kod) yang dilaksanakan secara automatik apabila beberapa peristiwa tertentu berlaku dalam jadual/pandangan pangkalan data. Antara kegunaannya yang lain, pencetus digunakan terutamanya untuk mengekalkan integriti dalam pangkalan data. Pencetus juga digunakan untuk menguatkuasakan peraturan perniagaan, mengaudit perubahan dalam pangkalan data dan mereplikasi data. Pencetus yang paling biasa adalah pencetus bahasa manipulasi data (DML) yang dicetuskan apabila data dimanipulasi. Beberapa sistem pangkalan data menyokong pencetus bukan data, yang dicetuskan apabila peristiwa bahasa definisi data (DDL) berlaku. Beberapa contoh adalah pencetus yang dipecat apabila jadual dibuat, semasa operasi komitmen atau rollback berlaku, dll. Pencetus ini boleh digunakan terutamanya untuk pengauditan. Sistem pangkalan data Oracle menyokong pencetus tahap skema (i.e. Pencetus dipecat apabila skema pangkalan data diubahsuai) seperti selepas penciptaan, sebelum mengubah, selepas alter, sebelum jatuh, selepas penurunan, dll. Empat jenis pencetus utama yang disokong oleh Oracle adalah pencetus tahap baris, pencetus tahap lajur, setiap jenis baris pencetus dan untuk setiap jenis pernyataan pencetus.
Apa itu kursor?
Kursor adalah struktur kawalan yang digunakan dalam pangkalan data untuk melalui rekod pangkalan data. Ia sangat serupa dengan iterator yang disediakan oleh banyak bahasa pengaturcaraan. Selain melintasi rekod dalam pangkalan data, kursor juga memudahkan pengambilan data, menambah dan memadam rekod. Dengan menentukan cara yang betul, kursor juga boleh digunakan untuk melintasi ke belakang. Apabila pertanyaan SQL mengembalikan satu set baris, mereka sebenarnya diproses menggunakan kursor. Kursor perlu diisytiharkan dan diberikan nama, sebelum dapat digunakan. Maka kursor perlu dibuka menggunakan arahan terbuka. Operasi ini akan meletakkan kursor sebelum baris pertama hasil set rekod. Maka kursor harus melaksanakan operasi pengambilan untuk benar -benar mendapatkan deretan data ke aplikasi. Akhirnya, kursor mesti ditutup menggunakan operasi yang dekat. Kursor tertutup boleh dibuka lagi.
Apakah perbezaan antara pencetus dan kursor?
Pencetus adalah prosedur (segmen kod) yang dilaksanakan secara automatik apabila beberapa peristiwa tertentu berlaku dalam jadual/pandangan pangkalan data, sementara kursor adalah struktur kawalan yang digunakan dalam pangkalan data untuk melalui rekod pangkalan data. Kursor boleh diisytiharkan dan digunakan dalam pencetus. Dalam keadaan sedemikian, pernyataan pengisytiharan akan berada di dalam pencetus. Maka skop kursor akan terhad kepada pencetus itu. Dalam pencetus, jika kursor diisytiharkan pada jadual yang dimasukkan atau dipadam, kursor seperti itu tidak dapat diakses dari pencetus bersarang. Setelah pencetus selesai, semua kursor yang dibuat dalam pencetus akan diperuntukkan.