gpt4 book ai didi

mysql - 当某些行可能与已存在的行重复时如何插入多行?

转载 作者:可可西里 更新时间:2023-11-01 08:07:41 32 4
gpt4 key购买 nike

所以我有一个复选框表单,用户可以在其中选择多个值。然后可以返回并选择不同的值。每个值都存储为一行 (UserID,value)。

当某些行可能与表中已存在的行重复时,您如何执行 INSERT?

我应该先删除现有值,然后再插入新值吗?

ON DUPLICATE KEY UPDATE 似乎很棘手,因为我会一次插入多行,那么我如何定义和区分需要更新的行和需要插入的行?

例如,假设用户进行首次选择:

INSERT INTO 
Choices(UserID,value)
VALUES
('1','banana'),('1','apple'),('1','orange'),('1','cranberry'),('1','lemon')

如果用户稍后返回并做出不同的选择,其中包括其原始查询中的某些值,从而导致重复,该怎么办?

我应该如何最好地处理它?<​​/p>

最佳答案

在我看来,简单地删除现有选项然后插入新选项是最好的方法。总体而言,它可能不是最有效的,但它易于编码,因此更有可能是正确的。

否则需要找到新选择和旧选择的交集。然后要么删除过时的选项,要么将它们更改为新选项(然后根据新选项集是大于还是小于原始选项集来插入/删除)。额外复杂性带来的额外风险似乎不值得。

编辑 正如@Andrew 在评论中指出的那样,如果这些记录恰好是参照完整性定义中的“父”记录,则将原始记录全部删除可能不是一个好的计划。我的想法是,根据 OP 的描述,这似乎不太可能发生。但这绝对值得考虑。

关于mysql - 当某些行可能与已存在的行重复时如何插入多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7535927/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com