我有多个级联路径错误的问题。这是我的表:
表(公司)
公司代码(PK)
....
表 (Aircraft)
AircraftRegistration (PK)
OwnerCode (FK to CompanyCode)
OperatorCode (FK to CompanyCode)
....
当我更新公司的主键时,我只想更新飞机表中的 ownercode 和 operatorcode 外键。
解决这个问题的正确方法是使用触发器吗?
我有多个级联路径错误的问题。这是我的表:
表(公司)
公司代码(PK)
....
表 (Aircraft)
AircraftRegistration (PK)
OwnerCode (FK to CompanyCode)
OperatorCode (FK to CompanyCode)
....
当我更新公司的主键时,我只想更新飞机表中的 ownercode 和 operatorcode 外键。
解决这个问题的正确方法是使用触发器吗?
您可以将ON UPDATE CASCADE添加到您的外键定义中,然后如果引用的键(即 Companies.CompanyCode)发生更改,值将自动更新。
编辑:但是正如您在评论中指出的那样,这不适用于具有两个外键引用同一列的表,因此对于这些情况,您必须使用触发器或以“受控”方式进行所有更新,例如通过更新引用列的存储过程。哪种方法更好取决于您的应用程序设计和数据库的使用方式。