gpt4 book ai didi

mysql - MYSQL中唯一列有什么缺点吗

转载 作者:可可西里 更新时间:2023-11-01 07:26:50 25 4
gpt4 key购买 nike

我想问一个关于 MySQL 中唯一列的问题。想请教各位大神,解决这个问题的方法比较好,有什么优缺点。

  • 将 varchar 列设置为唯一
  • 执行 SQL INSERT IGNORE
  • 如果受影响的行 > 0 继续运行代码

对比

  • 将 varchar 列保留为非唯一的
  • 执行搜索查询以查找相同的值
  • 如果查询中没有返回行,执行 SQL INSERT
  • 继续运行代码

最佳答案

这两种方法都不好。

您既不执行 INSERT IGNORE 也不搜索。搜索部分也是不可靠的,因为它在并发时失败并且损害了完整性。想象一下这个场景:你和我试图将相同的信息插入数据库。我们同时连接。有问题的代码确定数据库中没有我们双方的此类记录。我们都插入相同的数据。现在您的列不是唯一的,因此我们最终会得到 2 条相同的记录 - 您的完整性现在失败了。

您要做的是将列设置为unique,以您选择的语言插入并捕获异常。MySQL 会在重复记录的情况下失败,任何适用于 MySQL 的数据库驱动程序都会将此解释为异常。由于您没有提到语言是什么,因此很难继续举例。

关于mysql - MYSQL中唯一列有什么缺点吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24927274/

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