多行更新导致唯一的“完整性约束违规”

时间:2013-09-12 11:24:27

标签: mysql sql symfony doctrine-orm unique-constraint

我对变体表中的SKU列有唯一约束。我有一个表单,我可以用各自的SKU编辑多个变种。经典问题(questionquestion)如下(并影响MySQL):

假设您有两行值:

  • SKU1
  • SKU2

如果您在已编辑的集合中交换两个值,则唯一验证将成功,并且doctrine将发出两个更新。

第一个将 SKU1 设置为 SKU2 ,并且会立即失败唯一约束,因为存在重复值 SKU2 SKU2 < / em>的

  • SKU1 - &gt; SKU2 (唯一的遗失失败)
  • SKU2

在Symfony 2.3 Form和Doctrine 2.4中解决它的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

创建第三个值:

  • SKU1 - &gt; _SKU1
  • SKU2 - &gt; SKU1
  • _SKU1 - &gt; SKU2