重复条目 mysql 唯一字段


Duplicate entry mysql unique field

我有一个字段类型的'code_number'列,字段类型Unique。我尝试在具有不同编号的number列中插入 2 个数字。第一个数字是'112225577',第二个数字是'112228899'。现在我正在尝试更新第一个数字,并且只更改了 3 位最后一位数字'577''433' ,变得'112225433'.但是我Duplicate entry '112225433' for key 'code_number'错误.

怎么可能重复?我只有 2 个数据,数据不一样。谁能向我解释为什么会这样?

更新

这是我的代码。

产品

id INT(11)
product VARCHAR(250)
code_number VARCHAR(25) UNIQUE
...

帐户

id INT(11)
name VARCHAR(250)
email VARCHAR(100) UNIQUE
...

我的查询是这样的:

$this->db->set('code_number','112225433');
$this->db->where('code_number','112225577');
$this->db->update('product');

当我尝试更新帐户记录时,电子邮件列会出现同样的问题。下面是代码示例:

$this->db->set('email','andy123@yahoo.com');
$this->db->where('name','Andy');
$this->db->update('account');
电子邮件

列中的电子邮件数据,其中name='Andy' 'andy123@hotmail.com'

你绝对可以毫无问题地做到这一点(参见这里的SQL小提琴)。

我想您正在做一些事情,其中两行都更新为相同的值,相当于:

update t
    set code_number = '112225433';

这将准确生成您报告的错误。 毫无疑问,有许多SQL查询会产生这种效果。 但是,这会生成这样的错误。

这可能是您的 SQL 编辑器的问题。例如,它可以向您显示以前的值,但它可能已经更新了它,因此您认为它尚未更改。我以前遇到过这样的问题:值在数据库中更新,但编辑器尚未更新。