SQLSTATE[23000]:违反完整性约束:1062 重复条目
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
我的更新有问题,如果我有 1 行数据,我的更新有效,但如果我有 2 行数据,我遇到了这个问题。
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 2 Primary
myController.php
public function update(Partner $partner) {
$partner->update(array_except(Input::all(), '_token'));
}
知道问题出在哪里吗?
我自己 运行 对此感兴趣。根据此处的文档:
https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
With ON DUPLICATE KEY UPDATE, the affected-rows value per row is 1 if the row is inserted as a new row, and 2 if an existing row is updated.
o 当您的查询执行时,如果插入了一条新记录,则返回它的 ID。如果记录已经存在,则更新现有记录。如果因为值全部匹配而无需更新,则返回一个 ID,修改的行数为 0。但是,如果记录已更新,则返回 ID,修改的行数为 2。 keyholder 假设两行已被修改(即使只有一行被修改)并且错误地返回 ID 加上下一个顺序 ID(即 ID 加 1)。
For example click here
我将查询更改为此
public function UpdateItems(Item $updateitem, $item_id){
$sname = Input::get('subcategory');
$subname = ItemSubcategory::where('name',$sname)->first();
$input = Input::except('_token');
$updateitem->where('item_id', $item_id)
->update($input, ['subcategory' => $subname->id]);
}
现在我的代码可以正常工作了,但我遇到了一个小问题。除 subcategory
列外,所有列都可以更新。现在我的问题是,是否可以使用
将子类别列与其他列一起更新
update($input, ['subcategory' => $subname->id])
或者有什么方法可以更新子类别?
我得到了一个解决方案,它不合适但有效。我刚刚为子类别添加了另一个更新查询。
Item::whereItem_id($item_id)->update($input);
Item::whereItem_id($item_id)->update(['subcategory' => $subname->id]);
我的更新有问题,如果我有 1 行数据,我的更新有效,但如果我有 2 行数据,我遇到了这个问题。
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 2 Primary
myController.php
public function update(Partner $partner) {
$partner->update(array_except(Input::all(), '_token'));
}
知道问题出在哪里吗?
我自己 运行 对此感兴趣。根据此处的文档:
https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
With ON DUPLICATE KEY UPDATE, the affected-rows value per row is 1 if the row is inserted as a new row, and 2 if an existing row is updated.
o 当您的查询执行时,如果插入了一条新记录,则返回它的 ID。如果记录已经存在,则更新现有记录。如果因为值全部匹配而无需更新,则返回一个 ID,修改的行数为 0。但是,如果记录已更新,则返回 ID,修改的行数为 2。 keyholder 假设两行已被修改(即使只有一行被修改)并且错误地返回 ID 加上下一个顺序 ID(即 ID 加 1)。 For example click here
我将查询更改为此
public function UpdateItems(Item $updateitem, $item_id){
$sname = Input::get('subcategory');
$subname = ItemSubcategory::where('name',$sname)->first();
$input = Input::except('_token');
$updateitem->where('item_id', $item_id)
->update($input, ['subcategory' => $subname->id]);
}
现在我的代码可以正常工作了,但我遇到了一个小问题。除 subcategory
列外,所有列都可以更新。现在我的问题是,是否可以使用
update($input, ['subcategory' => $subname->id])
或者有什么方法可以更新子类别?
我得到了一个解决方案,它不合适但有效。我刚刚为子类别添加了另一个更新查询。
Item::whereItem_id($item_id)->update($input);
Item::whereItem_id($item_id)->update(['subcategory' => $subname->id]);