【问题标题】:Duplicate Entry error on field that isn't primary key不是主键的字段出现重复输入错误
【发布时间】:2012-01-30 14:36:52
【问题描述】:

我正在 PHP 中执行插入 MySQL 查询,如下所示:

$inserto= sprintf("INSERT INTO processing (orderid, ordert, usr, status, date, orderType) VALUES (%s, %s, %s, %s, %s, %s)",
    GetSQLValueString($OID,"int"),
    GetSQLValueString($tempbody,"text"),
    GetSQLValueString($_COOKIE[TENNuser],"text"),
    GetSQLValueString("0","int"),
    GetSQLValueString(date("d-m-Y"),"text"),
    GetSQLValueString('1','int'));

有时它可以正常工作,有时我会收到重复输入错误。我知道为什么会这样,这是因为某些 orderid 有时在技术上是相同的(这是正常的)。问题是 orderid 不是主键。我有一个自动递增的“id”字段,这是主键。

知道会发生什么吗?

【问题讨论】:

  • 只要您有任何定义为“唯一”的索引并插入(显然)重复记录,就会出现重复错误。它不仅限于主键字段。
  • 一定是星期一的事情,我完全忘了检查索引,它仍然设置为 orderid 字段。修复。 :) 谢谢!

标签: php mysql


【解决方案1】:

没有检查索引,就在那里,orderid 字段设置为 UNIQUE。

这将是漫长的一天。谢谢马克 B。

【讨论】:

  • 提示:完全没问题,有效并允许接受自我回答。
  • 一定是忘记了,2天都无法接受自己的答案。
猜你喜欢
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 2011-10-29
  • 2020-02-13
  • 2019-10-04
  • 2013-08-31
  • 1970-01-01
  • 2019-09-15
相关资源
最近更新 更多