MySQL似乎没有对约束进行约束,直到事务实现结束。如果是这样,在两个孩子记录中切换父母的最佳方式是什么?替换两个记录中的外键值(唯一)
例如,如果我们有一些用户可以放置项目的UI插槽,那么应该如何在用户插槽中切换项目,因为项目表中的slotid为FK,并且项目中的itemId和slotId列具有唯一索引表?
有没有比使用SET FOREIGN_KEY_CHECKS = 0和事务中的三个更新更好的方法?
[编辑] SlotId是不可空的,不应该给予该项目总是必须在某个位置 - 因此将其设置为可为空将意味着放弃语义正确性和重要的安全检查,只是为了使一些实现细节更容易。