PL/SQL - 简单的触发器,从一列和 IF-THEN-ELSE 到另一列



我试图找出我在这个简单的触发器上出错的地方。我对触发器很陌生,并试图习惯于将它们与 IFTTT 语句一起使用。

我希望触发器监视新的行条目,如果该值在列(col_a(的某个范围内,它将在同一行中输入某个值,但在不同的列(col_b(中输入该值,该值将被NULL直到输入为止。请问你能帮忙吗?

CREATE TRIGGER trg_test
BEFORE INSERT
ON test_table 
FOR EACH ROW
BEGIN
IF :new.col_a >= 10
THEN :new.col_b := 'High';   
ELSE
:new.col_b := 'Low';
END IF;
END;

它只是不断返回"编译错误的成功"。

您可以使用虚拟列轻松执行此操作:

alter table test_table
add col_b generated always as (case when col_a >= 10 then 'High' else 'Low' end);

我希望触发器中的练习使用合理的用例。 这不是一个 - 例如,您需要insertupdate触发器。

最新更新