使用触发器更新列号

时间:2020-09-16 03:39:35

标签: sql oracle sqlplus

现在我正在尝试使用触发器来更新低于2的数字。但是我已经尝试了很多次。更改后,触发器可以正常运行。但是当我执行它时,该数字仍然不能更新为数字小于2的行。 这是我的代码

snow = 10
print("snow : "  , snow)

这是样本表

create or replace trigger incrate
after update on student
for each row

BEGIN
update student 
set Score = 20
where Score < 2;

END;
/

假设我想更改输出以使得分低于2到20。 因此,执行后,我使用Sid Score A1 1 A2 62 A3 25 A4 0 。 输出应为select count(*) from student where Score =1;

可以给我一些建议以更改此命令,谢谢您的建议。

1 个答案:

答案 0 :(得分:0)

您在student表上的触发器也正在尝试更新同一表。这是一个递归触发器,在某些数据库上甚至不允许使用。建议不要使用触发器,而建议将此逻辑合并到您的更新中:

UPDATE student
SET ...
    Score = CASE WHEN Score < 2 THEN 20 ELSE Score END
WHERE ...
相关问题