我有一個表類別結構如下一行:MySQL的 - 防止引用本身
----------------------------------
| id (PK) | name | parentId (FK) |
----------------------------------
其中的parentId可以在同一個表中引用的行。
我想阻止一個行被更新,以便它引用到它本身(parentId的!= ID)。我知道我必須使用數據庫觸發器,但我不知道它應該如何顯示。我該怎麼做?
我知道我可以(也將)在應用程序邏輯處理這個問題,但我不認爲這是一個很好的做法僅在應用程序邏輯處理這類事情。
我也想防止插入和更新循環引用,但我想這是一個不同的問題。
你覺得這樣慢嗎?是否還使用了外鍵約束? http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html – dlamblin
速度沒問題。此外,我將限制嵌套深度爲5或10(尚不確定),所以我懷疑會有任何顯着的速度懲罰。但我一直在谷歌搜索已經這和Oracle似乎快了很多:http://explainextended.com/2009/09/28/adjacency-list-vs-nested-sets-oracle/是的,使用FK約束。 –