gpt4 book ai didi

sql - 在 Oracle 中创建触发器

转载 作者:行者123 更新时间:2023-12-04 18:29:36 25 4
gpt4 key购买 nike

我正在尝试在 Oracle SQLPlus 中创建触发器。触发器处理两个表:用户{id, name, status}产品{id, title, price, userid, status};

我希望当用户表更新时,条目的状态更改为 2,用户所做的所有产品都将更改为 i(表示不活动)

CREATE OR REPLACE TRIGGER update_offering_status
BEFORE UPDATE ON users
WHEN (new.status = 2)
FOR EACH ROW
DECLARE
Userid INTEGER;
BEGIN
USERID := :old.userid;
UPDATE offering
SET status = 'i'
WHERE userid = old.userid;
END;

我收到错误 ORA-04077:WHEN 子句不能与表级触发器一起使用。但是我不确定如果没有 when 子句怎么办?

最佳答案

发生这种情况是因为您的 WHEN 子句位置错误。将它放在 FOR EACH ROW 之后,您应该已经准备就绪:

CREATE OR REPLACE TRIGGER update_offering_status
BEFORE UPDATE ON users
FOR EACH ROW
WHEN (new.status = 2)

关于sql - 在 Oracle 中创建触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20432386/

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