Najlepszy samouczek SQLite wyzwalania W 2024 r. W tym samouczku możesz dowiedzieć się gramatyka,Przykłady,Listy wyzwalania (TRIGGERS),Usuń spust (TRIGGERS),
SQLite wyzwalacz jest funkcją oddzwaniania, automatycznie wykonywać, gdy wystąpi / określonego zdarzenia w bazie połączenia. Poniżej przedstawiono główne punkty na SQLite wyzwalania: SQLitewyzwalania (trigger) jest funkcja zwrotna bazy danych, zostanie ona automatycznie wykonywać / połączenia po wystąpieniu określonego zdarzenia bazy danych.Poniżej przedstawiono główne punkty o SQLite wyzwalaczy (trigger) z:
SQLite wyzwalaczy (trigger) wyzwalacze mogą być określone w momencie wystąpienia określonych tabel bazodanowych DELETE, INSERT lub UPDATE lub wyzwalane, gdy występuje jeden lub więcej określonych kolumn aktualizacji tabeli.
SQLite obsługuje tylko DLA KAŻDEGO wyzwalaczy wiersz (trigger), a nie DLA KAŻDEGO wyzwalaczy Statement (trigger). Dlatego jednoznacznie określić dla każdego wiersza jest opcjonalne.
KIEDY można uzyskać klauzuli i wyzwalacz (trigger) działania za pomocą formularzaNEW.nazwa_kolumny i OLD.nazwa_kolumnyreferencje wstawione, usunięte lub zaktualizowane elementy wiersz, kolumna nazwa związana jest z spustu z kolumn tabeli imię.
KIEDY klauzuli, jeżeli występuje, jest prawdziwe tylko dla KIEDY klauzuli określa wiersze do wykonania instrukcji SQL. Jeśli nie Kiedy wykonywana jest klauzula SQL dla wszystkich wierszy.
Po realizacji działania spustu przed lub po Hasło określa, kiedy działanie wyzwalacza, decyzja jest włożona powiązanych linii lub przed usunąć lub zmodyfikować.
Gdy stół związane ze spustem usunięty automatycznie usuwa wyzwalacz (trigger).
Aby zmodyfikować tabela muszą znajdować się w tej samej bazie danych jako wyzwalacz jest dołączony tabel lub widoków, i musi używać tylkonazwa_tabeli zamiast database.tablename.
Funkcja specjalnego SQL PODNOSZENIE () może być wykorzystywane do wyzwalania wyjątek w programie.
Tworzeniewyzwalacza (trigger) Podstawowa składnia jest następująca:
TWORZENIE TRIGGER trigger_name [PRZED | PO] EVENT_NAME NA table_name BEGIN - Logika wyzwalania idzie tutaj plpl END;
Tutaj EVENT_NAME można wymienić w tabeli nazwa_tabeliINSERT, DELETE i UPDATEoperacje na bazie danych.Opcjonalnie można określić dla każdego wiersza po nazwie tabeli.
Poniższy są określone w operacji Update w jednej lub kilku tabel na kolumnach utworzyć wyzwalacz składni (trigger):
TWORZENIE TRIGGER trigger_name [Przed | PO] UPDATE OF column_name NA table_name BEGIN - Logika wyzwalania idzie tutaj plpl END;
Załóżmy sytuację, w której chcemy być włożona do nowo utworzonej tabeli Company (jeśli już istnieje, usuń odtworzony) w każdym z testów kontroli prowadzenia rejestrów:
sqlite> CREATE TABLE Company ( ID INT PRIMARY KEY NOT NULL, NAZWA TEXT NOT NULL, AGE INT NOT NULL, CHAR ADDRESS (50), WYNAGRODZENIE NIERUCHOMOŚCI );
W celu utrzymania próby kontroli, będziemy tworzyć nową tabelę o nazwie AUDIT. Ilekroć Stół firma ma nowego wpisu rekordu, wiadomość dziennika w brzmieniu:
sqlite> CREATE TABLE Audytu ( EMP_ID INT NOT NULL, ENTRY_DATE TEXT NOT NULL );
Tutaj jest AUDIT ID rekordu ID, EMP_ID ID z tabeli firmy, data zachowa datownika jest tworzona, gdy Spółka jest wpisana. Więc teraz niech nam utworzyć wyzwalacz na stole Spółki w ten sposób:
sqlite> create TRIGGER audit_log AFTER INSERT o spółce BEGIN INSERT INTO Audytu (EMP_ID, ENTRY_DATE) VALUES (new.ID, datetime ( "teraz")); END;
Będziemy teraz zacząć wstawić rekord w tabeli Company, doprowadzi to do stworzenia tabeli AUDYTU rejestrowanie inspekcji. Więc stwórzmy rekord w tabeli Spółki, co następuje:
sqlite> INSERT INTO Company (id, nazwisko, wiek, adres, wynagrodzenia) Wartości (1, 'Paul', 32 'California', 20000.00);
Spowoduje to utworzenie rekordu w poniższej tabeli SPÓŁKI:
NAZWA ID AGE ADRES WYNAGRODZENIE ---------- ---------- ---------- ---------- ---------- 1 Paweł 32 California 20000,0
Jednocześnie, będziemy tworzyć rekord w tabeli audytu. Ta płyta jest wynikiem wyzwalacz, który jest wyzwalacz wstawić operacji na tabelach utworzonej spółce (trigger). Podobnie można tworzyć wyzwalacze na aktualizowanie i usuwanie operacji (trigger).
EMP_ID ENTRY_DATE ---------- ------------------- 12013-04-05 06:26:00
Można wymienić wszystkie wyzwalacze z tabelisqlite_master, co następuje:
sqlite> SELECT name FROM sqlite_master GDZIE type = "wyzwalania";
Powyższe stwierdzenie SQLite wymienia tylko jeden wpis, w następujący sposób:
nazwa ---------- audit_log
Jeśli chcesz umieścić na spust na określonej tabeli, użyj i klauzula dołączyć tabele przedstawiają się następująco:
sqlite> SELECT name FROM sqlite_master GDZIE type = "wyzwalania" I nazwa_tabeli = "Spółka";
Powyższe stwierdzenie SQLite wymienia tylko jeden wpis, w następujący sposób:
nazwa ---------- audit_log
Poniżej znajduje się polecenie DROP może być stosowany do usuwania istniejącego wyzwalacza:
sqlite> trigger_name DROP TRIGGER;