我在oracle数据库中有一个表,该表有两个字段:status
和notes
。status
字段只有3个实际值:active, not-active, removed
。
当status
为时active
,默认情况下notes
字段中没有任何内容。
如果status
更改为not-active
,notes
将输入值。由用户
status
更改回active
,则需要notes
删除字段值。我以前从未使用过触发器,所以对我来说有点复杂,但这就是我的能力:
CREATE TRIGGER update_notes
AFTER UPDATE ON table1
FOR EACH ROW
BEGIN
IF status = 'Active' THEN UPDATE table1 SET notes = '';
END IF;
END;
但是失败了。我错过了什么?
不要使用update
语句,只需分配值即可:
CREATE TRIGGER update_notes
BEFORE UPDATE ON table1
FOR EACH ROW
BEGIN
IF :new.status = 'Active' THEN
:new.notes = null;
END IF;
END;
顺便说一句:表有列,而不是“字段”
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句