gpt4 book ai didi

triggers - 从同一张表中触发选择

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

我想问一个关于触发器的问题。假设我有一个表 T 并且在更新之前我需要一个触发器。但是,我有一个问题。我需要使用触发器中 T 的其他行来检查条件。我的问题是:哪个 RDBMS 支持这个?我在哪里可以编写在触发器触发的同一个表上执行选择的触发器。例如:

CREATE TRIGGER updtrigger BEFORE UPDATE ON Employee
-> FOR EACH ROW
-> BEGIN
-> IF NEW.Salary<=500 THEN
-> SET NEW.Salary=10000;
-> ELSEIF NEW.Salary>500 and NEW.Salary < 600 THEN
-> SET NEW.Salary=15000;
-> ELSEIF NEW.Salary > (select MAX(Salary) from Employee)
-> Set NEW.Salary = 601;
-> END IF;
-> END
-> //

谢谢,

最好的问候,

拉霍斯阿帕德。

最佳答案

例如,给定的触发器将在 Oracle 中抛出一个 Mutating 表异常,但在 Oracle 中有一个解决方案,例如这个触发器是允许的并且它工作正常:

CREATE or replace TRIGGER updtrigger BEFORE UPDATE ON Employees
FOR EACH ROW
DECLARE
pragma autonomous_transaction;
n number;
BEGIN
select MAX(Salary) into n from Employees;
IF :NEW.Salary<=500 THEN
DBMS_OUTPUT.PUT_LINE('kisebb mint 500');
:NEW.salary:=n;
end if;
commit;
END;

关于triggers - 从同一张表中触发选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8707556/

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