sql >> Database >  >> RDS >> Oracle

Oracle Trigger WHEN-clausule Voorbeeld

In dit artikel leert u hoe u de WHEN-clausule in Oracle-trigger kunt gebruiken om de trigger te activeren op de opgegeven voorwaarde. Hieronder is een voorbeeld.

U kunt dit triggervoorbeeld testen door de volgende tabel en trigger in uw Oracle-databaseschema te maken.

Tabel maken

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)
)
/

Maak een Oracle Database-trigger met WHEN-clausule

De volgende trigger wordt alleen geactiveerd als de JOB gelijk is aan CLERK , en als dat zo is, wordt de COMM-kolom (commissie) op 0 gezet.

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

Test

De onderstaande insert-instructie voor EMP-tabel zal proberen een record in te voegen voor CLERK met commissie 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;

De tabel doorzoeken

Zoek nu in de EMP-tabel voor het hierboven ingevoegde record en u zult zien dat de COMM-kolomwaarde 0 is .

SELECT *
FROM EMP
WHERE EMPNO = 7499;

Zie ook:

  • Meer informatie over het maken van een trigger in Oracle SQL Developer
  • Maak triggers in Oracle Forms-voorbeeld
  1. Parametersnuiven (of spoofen) in SQL Server

  2. Oracle:hoe UPSERT (bijwerken of invoegen in een tabel?)

  3. Hoe een IPv6-compatibel adres op te slaan in een relationele database

  4. MariaDB – MySQL – Toon motoren om alle beschikbare en ondersteunde motoren weer te geven