我有一個多級聯路徑錯誤的問題。這裏是我的表:多級聯路徑
表(公司)
企業編碼(PK)
....
表(飛機)
AircraftRegistration(PK)
OwnerCode(FK到企業編碼)
OperatorCode(FK to CompanyCode)
....
當我更新公司中的主鍵時,我只想更新飛機表中的所有者代碼和操作員外鍵。
就是要解決這個問題,使用觸發器正確的方法是什麼?
我有一個多級聯路徑錯誤的問題。這裏是我的表:多級聯路徑
表(公司)
企業編碼(PK)
....
表(飛機)
AircraftRegistration(PK)
OwnerCode(FK到企業編碼)
OperatorCode(FK to CompanyCode)
....
當我更新公司中的主鍵時,我只想更新飛機表中的所有者代碼和操作員外鍵。
就是要解決這個問題,使用觸發器正確的方法是什麼?
您可以將ON UPDATE CASCADE添加到您的外鍵定義中,然後如果引用的鍵(即Companies.CompanyCode)發生更改,這些值將自動更新。
編輯:但正如您在評論中指出的那樣,這對於有兩個外鍵引用同一列的表不起作用,所以對於這些情況,您將不得不使用觸發器或在一種「受控」的方式,比如通過更新引用列的存儲過程。哪種方法更好取決於您的應用程序設計以及數據庫的使用方式。
我認爲觸發器是處理SQL-Server中多個層疊路徑的唯一方法。 –