阅读量:0
在Oracle触发器中使用条件语句,你可以使用IF
、CASE
或WHEN
等关键字
- 使用
IF
语句:
CREATE OR REPLACE TRIGGER example_trigger AFTER INSERT ON example_table FOR EACH ROW DECLARE v_new_value NUMBER; BEGIN v_new_value := :NEW.column_name; IF v_new_value > 10 THEN -- 执行某个操作 DBMS_OUTPUT.PUT_LINE('新值大于10'); ELSEIF v_new_value <= 10 AND v_new_value > 0 THEN -- 执行另一个操作 DBMS_OUTPUT.PUT_LINE('新值在0和10之间'); ELSE -- 执行其他操作 DBMS_OUTPUT.PUT_LINE('新值小于等于0'); END IF; END; /
- 使用
CASE
语句:
CREATE OR REPLACE TRIGGER example_trigger AFTER INSERT ON example_table FOR EACH ROW DECLARE v_new_value NUMBER; BEGIN v_new_value := :NEW.column_name; CASE WHEN v_new_value > 10 THEN -- 执行某个操作 DBMS_OUTPUT.PUT_LINE('新值大于10'); WHEN v_new_value <= 10 AND v_new_value > 0 THEN -- 执行另一个操作 DBMS_OUTPUT.PUT_LINE('新值在0和10之间'); ELSE -- 执行其他操作 DBMS_OUTPUT.PUT_LINE('新值小于等于0'); END CASE; END; /
- 使用
WHEN
语句:
CREATE OR REPLACE TRIGGER example_trigger AFTER INSERT ON example_table FOR EACH ROW DECLARE v_new_value NUMBER; BEGIN v_new_value := :NEW.column_name; WHEN v_new_value > 10 THEN -- 执行某个操作 DBMS_OUTPUT.PUT_LINE('新值大于10'); WHEN v_new_value <= 10 AND v_new_value > 0 THEN -- 执行另一个操作 DBMS_OUTPUT.PUT_LINE('新值在0和10之间'); ELSE -- 执行其他操作 DBMS_OUTPUT.PUT_LINE('新值小于等于0'); END WHEN; END; /
这些示例都是在插入新记录后触发的触发器,并根据新插入记录的某个列值执行不同的操作。你可以根据自己的需求修改触发器和条件语句。