gpt4 book ai didi

sql - PL/SQL触发触发问题

转载 作者:行者123 更新时间:2023-12-02 05:26:05 25 4
gpt4 key购买 nike

我对PL / SQL触发器何时触发有疑问。

我写了以下触发器

CREATE OR REPLACE TRIGGER gradeInputCheck
BEFORE INSERT ON GRADE
FOR EACH ROW
DECLARE
newGrade GRADE.NUMERIC_GRADE%TYPE := :NEW.NUMERIC_GRADE;
grade_too_low EXCEPTION;
grade_too_high EXCEPTION;
BEGIN
DBMS_OUTPUT.PUT_LINE(newGrade);
IF (newGrade < 0) THEN
RAISE grade_too_low;
ELSIF (newGrade > 100) THEN
RAISE grade_too_high;
END IF;
EXCEPTION
WHEN grade_too_low THEN
DBMS_OUTPUT.PUT_LINE('Grades must be between 0 and 100');
WHEN grade_too_high THEN
DBMS_OUTPUT.PUT_LINE('Grades must be between 0 and 100');
END;

但是,当我运行一个简单的语句
UPDATE grade SET numeric_grade = -1;

触发器不触发。
关于如何使扳机开火有什么要点吗?

谢谢!

最佳答案

您的触发器是插入触发器。插入触发器不会触发更新语句。您应该改用以下方式:

BEFORE UPDATE ON GRADE

关于sql - PL/SQL触发触发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5688059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com