簡體   English   中英

插入后如何檢查另一個表中的插入

[英]How to check insertion in another table after insertion

我有兩個實體propositiondepartment 命題必須針對至少一個部門(1-N),而一個部門可以針對0-N個命題。

所以在我的數據庫,我有3個表: PROPOSITIONTARGETDEPARTEMENT

我嘗試找到一種方法來確保在PROPOSITION插入一個命題之后,在TARGET插入一個條目。 換句話說,我想確保(1-N)關系不會變成(0-N)關系。

有辦法做到這一點與觸發器? 還是應該更改數據庫的結構?

提前致謝

[編輯]解決方案:

觸發器無法完成任務,因為TARGET的插入取決於用戶異步輸入的值。 例如,如果命題1以部門2和部門3為目標,則在我的表中,數據為:

PROPOSITION
1

TARGET
1 2
1 3

DEPARTMENT 
1  
2 
3

觸發方式:在插入內容后,在PROPOSITION上設置一個觸發方式。 我們做什么 ? 等待插入TARGET嗎? TARGET為部門插入默認值? 因此,觸發PROPOSITION不會起作用。

我發現的唯一解決方案是重組數據庫:

  • 我在命題中添加了字段DEPARTMENT_NUMBER ,該字段不能為NULL。
  • 我在TARGET表上設置了一個觸發器,以在插入之前檢查該命題尚未針對其屬性中的部門進行檢查。

該方法減慢了數據庫速度,但可以確保遵守(1-N)關系

在我的觀點中,執行此操作的最佳方法是在Proposition上創建一個觸發器,該觸發器插入到Target中。

檢查此鏈接,它應該使您入門。 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM