严格来说,级联这样的值的唯一方法是使用ON UPDATE CASCADE。要做到 这 ,列“IS_DELETED”必须是一个唯一约束的一部分。
仅此一点也不难。如果company.id是您的主键,那么一对列{id,is_deleted}也将是唯一的。该对列上的唯一约束将允许您通过外键引用来级联更新。
但这不适用于 您的 情况,因为您需要允许引用值 不同于 引用值。
因此,就您而言,我认为您有三个选择。
在所有这些情况下,您都需要注意权限(可能是撤消删除权限)以及避免使用代码的情况。例如,dbms命令行界面和GUI界面可用于绕开应用程序代码以及根据权限在存储过程中的约束。