我在oracle中创建触发器时遇到问题,我有一个表格"票证",其中有"价格"和"类型"字段。我想做一个触发器,根据机票类型(正常/减少)增加价格。
我正在使用CASE
但它根本不起作用。这是我的代码:
CREATE OR REPLACE TRIGGER TYPE_BIR
BEFORE INSERT ON Tickets
FOR EACH ROW
BEGIN
CASE
WHEN type = "normal" THEN :new.price := "15"
WHEN type = "reduced" THEN :new.price := "12"
END;
当你说"它不起作用"时,你的意思是它不编译还是你的意思是它没有做你想做的事情?
尝试
CREATE OR REPLACE TRIGGER TYPE_BIR
BEFORE INSERT ON Tickets
FOR EACH ROW
BEGIN
IF :new.type = 'normal' THEN
:new.price := 15 ;
ELSIF :new.type = 'reduced' THEN
:new.price := 12 ;
END IF ;
END;
我假设价格是数字
或者如果你想使用CASE...
CREATE OR REPLACE TRIGGER TYPE_BIR
BEFORE INSERT ON Tickets
FOR EACH ROW
BEGIN
CASE :new.type
WHEN 'normal' THEN :new.price := 15 ;
WHEN 'reduced' THEN :new.price := 12 ;
END CASE ;
END;