[英]How to check insertion in another table after insertion
我有兩個實體proposition
和department
。 命題必須針對至少一個部門(1-N),而一個部門可以針對0-N個命題。
所以在我的數據庫,我有3個表: PROPOSITION
, TARGET
和DEPARTEMENT
。
我嘗試找到一種方法來確保在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.