我正在使用 if-else 和 elseif 语句在 oracle 中寻找触发器,这是我的代码
I m looking for trigger in oracle with if-else and elseif statement here is my code
CREATE OR REPLACE TRIGGER yindel_str_change
BEFORE INSERT OR UPDATE ON yindel
FOR EACH ROW BEGIN
IF (NEW.one > 0)
THEN update yindel set one=one+1 where name='1';
ELSE dbms_output.put_line(' Difference ');
END IF;
END;
CREATE OR REPLACE TRIGGER yindel_str_change
BEFORE INSERT OR UPDATE OF yindel_a, yindel_b
ON wholedata
FOR EACH ROW
BEGIN
IF :NEW.yindel_a = '1' AND :NEW.yindel_b = '1'
THEN
UPDATE yindel
SET one = one + 1
WHERE name = '1';
ELSE
IF :NEW.yindel_a = '1' AND :NEW.yindel_b = '2'
THEN
UPDATE yindel
SET two = two + 1
WHERE name = '1';
ELSE
IF :NEW.yindel_a = '2' AND :NEW.yindel_b = '2'
THEN
UPDATE yindel
SET two = two + 1
WHERE name = '2';
ELSE
UPDATE yindel
SET two = two + 0
WHERE name = '2';
END IF;
END IF;
END IF;
END;
CREATE OR REPLACE TRIGGER yindel_str_change
BEFORE INSERT OR UPDATE ON yindel
FOR EACH ROW BEGIN
IF (NEW.one > 0)
THEN update yindel set one=one+1 where name='1';
ELSE dbms_output.put_line(' Difference ');
END IF;
END;
CREATE OR REPLACE TRIGGER yindel_str_change
BEFORE INSERT OR UPDATE OF yindel_a, yindel_b
ON wholedata
FOR EACH ROW
BEGIN
IF :NEW.yindel_a = '1' AND :NEW.yindel_b = '1'
THEN
UPDATE yindel
SET one = one + 1
WHERE name = '1';
ELSE
IF :NEW.yindel_a = '1' AND :NEW.yindel_b = '2'
THEN
UPDATE yindel
SET two = two + 1
WHERE name = '1';
ELSE
IF :NEW.yindel_a = '2' AND :NEW.yindel_b = '2'
THEN
UPDATE yindel
SET two = two + 1
WHERE name = '2';
ELSE
UPDATE yindel
SET two = two + 0
WHERE name = '2';
END IF;
END IF;
END IF;
END;