是否有可能具有複雜的檢查約束?SQL擴展檢查約束
例如我有一個客戶表,其中每個記錄都分配了一個客戶類型。
因此,我可以有幾個相同類型的客戶。
我想爲每種類型設置一個客戶作爲該類型的「主要」帳戶,但每種類型只有一個客戶可以是主要客戶。
是否可以在IsPrimary字段上添加檢查約束條件,檢查所有相同類型的客戶是否已經有一個標記爲主要的客戶?
我可以在C#代碼中做到這一點,但我希望這是一個額外的檢查。
我也可以使用觸發器,但我想堅持約束,以便我可以以同樣的方式處理所有錯誤的錯誤。
謝謝
'CHECK'約束只能約束單列(列檢查約束)或單列中的所有列(表檢查約束)。標準SQL也描述了'ASSERTION',它可以應用於表中的所有行,但我並不認爲已經有很多研究探討如何使ASSERTION有效地執行,因此大多數數據庫系統實際上並不實際執行它們。 –