SQL - 如何有效地在所有列上设置约束?

时间:2017-12-10 23:40:22

标签: sql oracle11g triggers sqlplus check-constraints

使用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;

我想知道这是否可以以更高效的方式完成而无需指定其他所有列。我在这里看到的问题是,如果我稍后修改了其他列的表,则需要每次都调整此约束。

0 个答案:

没有答案