使用SQL Plus,我试图设置一个触发器,阻止任何人更新表,除非它是一个特定列。它不一定是触发器。
在一个包含6列的表中,您希望仅允许用户更新c3并禁止任何其他更改。
我对上述示例的解决方案是执行以下操作:
CREATE OR REPLACE TRIGGER T1_trigger
BEFORE UPDATE OF c1,c2,c4,c5,c6 ON t1
FOR EACH ROW
BEGIN
RAISE_APPLICATION_ERROR(-20121, 'ERROR -> You can only update C3');
END;
我想知道这是否可以以更高效的方式完成而无需指定其他所有列。我在这里看到的问题是,如果我稍后修改了其他列的表,则需要每次都调整此约束。