ZSc*_*idi 3 oracle constraints
我在最新的补丁中遇到了一个大问题。更新条件不完整,我不小心更新了多行。
我现在想要做的是通过为表设置约束来防止这种情况,一旦我尝试更新多行就会导致异常。可选择使用特定参数。
有没有办法在 oracle 11.2 中做到这一点?
您可以使用复合触发器来完成此操作:
CREATE OR REPLACE TRIGGER TABLE1_FAIL_MULT_UPDATES_TRG
FOR UPDATE ON TABLE1
COMPOUND TRIGGER
nUpdate_count NUMBER;
BEFORE STATEMENT IS
BEGIN
nUpdate_count := 0;
END BEFORE STATEMENT;
BEFORE EACH ROW IS
BEGIN
IF UPDATING THEN
nUpdate_count := nUpdate_count + 1;
IF nUpdate_count > 1 THEN
RAISE_APPLICATION_ERROR(-20100, 'Attempted to update more than 1 row');
END IF;
END IF;
END BEFORE EACH ROW;
END TABLE1_FAIL_MULT_UPDATES_TRG;
Run Code Online (Sandbox Code Playgroud)
祝你好运。