【问题标题】:Duplicate entry check重复输入检查
【发布时间】:2013-05-24 13:52:27
【问题描述】:

我试图了解 MSQL 的 Duplicate Entry 是如何工作的。

我所理解的是保存时

title='aaaaaccccc'

两次并且标题字段是唯一的,您将收到错误:重复条目。

MySQL 是否将长度 = 200 的字符串截断为 64 个字符,然后检查 64 个字符长的字符串是否唯一?

更新:

当我保存 2 条记录(标题)时,MySQL 抱怨在保存第二个标题时违反了唯一约束。第一个标题是相同的,比如说 100 个字符。之后就不同了。无论如何,MySQL 是否会抛出重复键错误。

【问题讨论】:

  • 截断有什么意义?它可以相互比较完整的字符串。我不知道确切的算法。
  • 您的意思是,如果考虑到整个长度,插入的标题将是唯一的,但是当您尝试保存值时 MySQL 抱怨违反了唯一约束?您能否提供唯一约束的定义?
  • 是的,MySQL 在保存第二个标题时抱怨违反了唯一约束。第一个标题是相同的,比如说 100 个字符。之后就不同了。无论如何,MySQL 是否会抛出重复键错误。

标签: mysql


【解决方案1】:

这取决于数据类型:varchar 列将被修剪,但char 列不会(它们被填充到指定的列长度)。

【讨论】:

  • 我正在使用 django 和 Charfield(varchar) + maxlength=255
猜你喜欢
  • 1970-01-01
  • 2011-11-19
  • 2016-11-19
  • 2017-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
相关资源
最近更新 更多