Sql 更新时限制删除级联

Sql 更新时限制删除级联,sql,oracle,Sql,Oracle,我想把这个SQL翻译成Oracle。由于Oracle没有更新限制,我无法想象这应该如何实现。省略ON UPDATE子句可以解决问题吗 ALTER TABLE IDN_APPMGT_CLAIM_MAPPING ADD CONSTRAINT CLAIMID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES IDN_APPMGT_APP (ID) ON UPDATE RESTRICT ON DELETE CASCADE; 根据,RESTRICT在O

我想把这个SQL翻译成Oracle。由于Oracle没有更新限制,我无法想象这应该如何实现。省略ON UPDATE子句可以解决问题吗

ALTER TABLE IDN_APPMGT_CLAIM_MAPPING 
ADD CONSTRAINT CLAIMID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES IDN_APPMGT_APP (ID) 
ON UPDATE RESTRICT
ON DELETE CASCADE;
根据,
RESTRICT
ON UPDATE
ON DELETE
子句中:

拒绝父表的删除或更新操作

换句话说,当子表中的行引用此值时,尝试更改父表中的值将失败

您不能在Oracle外键约束中指定更新时的
子句,因为Oracle不支持外键约束中的更新时的
选项…
。但是,这对您来说不是问题,因为Oracle使用
UPDATE
语句和外键约束的行为与MySQL使用
ON UPDATE RESTRICT
的行为相同。事实上,
ON UPDATE RESTRICT
也是MySQL中的默认值,因此您可以在两个数据库中都省略它

总之,是的,从约束中省略
ON UPDATE RESTRICT
子句将解决您的问题

ALTER TABLE IDN_APPMGT_CLAIM_MAPPING 
ADD CONSTRAINT CLAIMID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES IDN_APPMGT_APP (ID) 
ON DELETE CASCADE;