Różnica między wyzwalaczami a kursorami

Różnica między wyzwalaczami a kursorami
Różnica między wyzwalaczami a kursorami

Wideo: Różnica między wyzwalaczami a kursorami

Wideo: Różnica między wyzwalaczami a kursorami
Wideo: Różnice między Facebook Ads a Google Ads - 90s o marketingu #19 2024, Listopad
Anonim

Wyzwalacze a kursory

W bazie danych wyzwalacz jest procedurą (segmentem kodu), która jest wykonywana automatycznie, gdy w tabeli/widoku wystąpią określone zdarzenia. Wśród innych zastosowań wyzwalacze służą głównie do utrzymania integralności w bazie danych. Kursor to struktura kontrolna używana w bazach danych do przeglądania rekordów bazy danych. Jest bardzo podobny do iteratora dostarczanego przez wiele języków programowania.

Co to są wyzwalacze?

Wyzwalacz to procedura (segment kodu), która jest wykonywana automatycznie, gdy w tabeli/widoku bazy danych wystąpią określone zdarzenia. Wśród innych zastosowań wyzwalacze służą głównie do utrzymania integralności w bazie danych. Wyzwalacze są również wykorzystywane do egzekwowania reguł biznesowych, audytu zmian w bazie danych i replikacji danych. Najczęstszymi wyzwalaczami są wyzwalacze języka manipulacji danymi (DML), które są wyzwalane podczas manipulacji danymi. Niektóre systemy baz danych obsługują wyzwalacze inne niż dane, które są wyzwalane, gdy wystąpią zdarzenia języka definicji danych (DDL). Niektóre przykłady to wyzwalacze, które są uruchamiane podczas tworzenia tabel, podczas operacji zatwierdzania lub wycofywania itp. Wyzwalacze te mogą być szczególnie używane do inspekcji. System baz danych Oracle obsługuje wyzwalacze na poziomie schematu (tj. wyzwalacze uruchamiane podczas modyfikacji schematów bazy danych), takie jak po utworzeniu, przed zmianą, po zmianie, przed upuszczeniem, po upuszczeniu itp. Cztery główne typy wyzwalaczy obsługiwane przez Oracle to wyzwalacze na poziomie wiersza, Wyzwalacze na poziomie kolumny, wyzwalacze dla każdego typu wiersza i wyzwalacze dla każdego typu instrukcji.

Czym są kursory?

Kursor to struktura kontrolna używana w bazach danych do przeglądania rekordów bazy danych. Jest bardzo podobny do iteratora dostarczanego przez wiele języków programowania. Oprócz przechodzenia przez rekordy w bazie danych kursory ułatwiają również wyszukiwanie danych, dodawanie i usuwanie rekordów. Definiując poprawny sposób, kursory mogą być również używane do poruszania się wstecz. Gdy zapytanie SQL zwraca zestaw wierszy, są one w rzeczywistości przetwarzane za pomocą kursorów. Kursor musi być zadeklarowany i mieć przypisaną nazwę, zanim będzie mógł zostać użyty. Następnie kursor musi zostać otwarty za pomocą polecenia OPEN. Ta operacja spowoduje umieszczenie kursora tuż przed pierwszym wierszem wynikowego zestawu rekordów. Następnie kursor musi wykonać operację FETCH, aby faktycznie pobrać wiersz danych do aplikacji. Na koniec należy zamknąć kursor za pomocą operacji ZAMKNIJ. Zamknięte kursory można ponownie otworzyć.

Jaka jest różnica między wyzwalaczami a kursorami?

Wyzwalacz to procedura (segment kodu), która jest wykonywana automatycznie, gdy w tabeli/widoku bazy danych wystąpią określone zdarzenia, podczas gdy kursor jest strukturą kontrolną używaną w bazach danych do przechodzenia przez rekordy bazy danych. Kursor można zadeklarować i używać w wyzwalaczu. W takiej sytuacji deklaracja byłaby wewnątrz wyzwalacza. Wtedy zakres kursora byłby ograniczony do tego wyzwalacza. W wyzwalaczu, jeśli kursor jest zadeklarowany we wstawionej lub usuniętej tabeli, taki kursor nie będzie dostępny z wyzwalacza zagnieżdżonego. Po zakończeniu wyzwalacza wszystkie kursory utworzone w wyzwalaczu zostaną cofnięte.

Zalecana: