2015-10-01 84 views
0

正如標題所述,我正在查找一個數據庫約束,可以確保新插入的父行始終至少有一個子行。是否有一個數據庫約束,可以檢查插入的父行始終至少有一個子行

假設我有一個公司表和一個文檔表。業務規則是

  1. 每個公司都可以有多個文件所以公司表和文件表是一對多關係;
  2. 每個公司必須至少有一個文件。

我想在數據庫級別進行檢查,以便每當創建新公司時,必須在同一個事務中插入一個文檔。

是否有這樣的約束?

順便說一句,我使用MySQL和JPA,所以我也很樂意使用JPA註釋做檢查,如果有任何。

回答

0

你需要使用觸發器(BEFORE INSERT),但這不是很好的做法。我會建議直接在交易中檢查它。在插入之前,請通過選擇進行檢查。觸發器是可視性的噩夢。

相關問題