MySQL似乎沒有對約束進行約束,直到事務實現結束。如果是這樣,在兩個孩子記錄中切換父母的最佳方式是什麼?替換兩個記錄中的外鍵值(唯一)
例如,如果我們有一些用戶可以放置項目的UI插槽,那麼應該如何在用戶插槽中切換項目,因爲項目表中的slotid爲FK,並且項目中的itemId和slotId列具有唯一索引表?
有沒有比使用SET FOREIGN_KEY_CHECKS = 0和事務中的三個更新更好的方法?
[編輯] SlotId是不可空的,不應該給予該項目總是必須在某個位置 - 因此將其設置爲可爲空將意味着放棄語義正確性和重要的安全檢查,只是爲了使一些實現細節更容易。