sql >> Database teknologi >  >> RDS >> Oracle

Oracle Trigger WHEN-klausuleksempel

I denne artikel vil du lære, hvordan du bruger WHEN-klausulen i Oracle-udløseren til at få udløseren til at aktivere den angivne tilstand. Nedenfor er et eksempel.

Du kan teste dette triggereksempel ved at oprette følgende tabel og trigger i dit Oracle-databaseskema.

Opret tabel

CREATE TABLE EMP
(
EMPNO NUMBER(4) NOT NULL,
ENAME VARCHAR2(10 BYTE),
JOB VARCHAR2(9 BYTE),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
)
/

Opret en Oracle-databaseudløser med WHEN-klausul

Den følgende udløser udløses kun, når JOBBET er lig med CLERK , og hvis det er, så vil det sætte COMM-kolonnen (kommission) til 0.

CREATE OR REPLACE TRIGGER emp_trig_1
BEFORE INSERT
ON EMP
FOR EACH ROW
WHEN (NEW.job = 'CLERK')
BEGIN
:NEW.comm := 0;
END;
/

Test

Nedenstående indsættelseserklæring for EMP-tabellen vil forsøge at indsætte en post for CLERK med provision 300.

SET DEFINE OFF;
Insert into EMP
(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
Values
(7499, 'ALLEN', 'CLERK', 7698,
TO_DATE('02/20/1981 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1600, 300, 30);
COMMIT;

Forespørg i tabellen

Forespørg nu i EMP-tabellen for den ovenstående indsatte post, og du vil opdage, at COMM-kolonnens værdi er 0 .

SELECT *
FROM EMP
WHERE EMPNO = 7499;

Se også:

  • Lær hvordan du opretter en trigger i Oracle SQL Developer
  • Opret triggere i Oracle Forms-eksempel
  1. PostgreSQL-databasens standardplacering på Linux

  2. MySQL Oprettelse af tabeller med fremmednøgler giver fejlnr.:150

  3. Tæl forekomsten af ​​DISTINCT-værdier

  4. SQL Server Linked Server Eksempel forespørgsel