Slik aktiverer, generere, oppdatere, slette og sette inn uttalelser for Oracle Database

Oracle database er et objekt-relasjonsdatabase management system bestående av en søknad og datalagring. En utløser er en navngitt program lagret i en Oracle database og henrettet for en bestemt hendelse. Arrangementet kan være en database manipulasjon, en definisjon eller drift i forbindelse med et bord, eller en visning, skjema eller database. Triggere er aktivert som standard i Oracle. Eksempler på triggere knyttet til database manipulasjon inkluderer slette, sette inn og oppdatere uttalelser.

Bruksanvisning

1 Kontroller at du har de nødvendige tillatelsene til å bruke triggere. Du må ha CREATE TRIGGER system privilegium samt tillatelse til å endre tabeller navngitt i den utløsende uttalelse. Hvis du er i tvil om dine rettigheter, ta kontakt med systemansvarlig.

2 Sett inn en CREATE TRIGGER-setningen i koden din. For eksempel utfører følgende kode når et databasehåndteringssystem operasjon utføres på bordet:

CREATE OR REPLACE TRIGGER Print_salary_changes
FØR slette eller sette inn eller oppdatere PÅ emp
For hver rad
NÅR (NEW.EMPNO> 0)
ERKLÆRE

sal_diff number;

BEGYNNE

sal_diff := :NEW.SAL - :OLD.SAL;
dbms_output.put('Old salary: ' || :OLD.sal);
dbms_output.put(' New salary: ' || :NEW.sal);
dbms_output.put_line(' Difference ' || sal_diff);

SLUTT;
/

3 Endre koden til å representere når du vil utløse brann. Den FØR uttalelse indikerer avtrekkeren bør utføre før bordet er tilgjengelig. Uttalelsen kan endres til etter hvis du ønsker avtrekkeren for å endre eller spørre den samme tabellen.

4 Endre koden for å reflektere om du vil avtrekkeren for å avfyre ​​en eller flere ganger. I dette eksempelet for hver rad angir at du vil avtrekkeren for å avfyre ​​en gang for hver rad i tabellen. Hvis du sletter denne linjen med kode, vil utløse brann en gang for hvert utsagn.

5 Endre NÅR klausul for å indikere når trigger kroppen utfører på rad. I dette eksemplet, NÅR (NEW.EMPNO> 0) indikerer at avtrekkeren kroppen vil bare kjøre hvis EMPNO er ​​positiv.

Hint

  • Hvis du ønsker å deaktivere en trigger, bruk en ALTER TRIGGER-setning med en SKRU klausul. For eksempel, for å deaktivere triggere forbundet med en inntekt bordet, setter følgende kode:
  • ALTER TABLE Inntekt deaktivere alle UTLØSER;