违反完整性约束:1062 重复字段

Integrity constraint violation: 1062 Duplicate field

最近我正在使用的应用程序出现以下错误。当尝试使用 eloquent 插入记录时。 该代码在过去几个月中运行良好。现在它只是在插入“1303”条记录后抛出错误。

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicata du champ '1304' pour la clef 'PRIMARY' (SQL: insert into orderrequest

Translate from: English SQLSTATE [23000]: Integrity constraint violation: 1062 Duplicate field '1304' for the 'PRIMARY' key (SQL: insert into orderrequest

    $today = date("Y-m-d H:i:s");
    $order = OrderModel::find($id);
    $kot = new OrderrequestModel;
    $kot->orid = $id;
    $kot->location = $order->location;
    $kot->provider = "kitchen";

    $orderitems =OrderitemModel::where('orid', '=', $id)->get();
    $total = 0;


    foreach ($orderitems as $orderitem) {
        //$total = $total+($orderitem->price * $orderitem->qty);
        if($orderitem->provider=="kitchen"){
    $kot->token .= '<tr>
            <td align="left">'.$orderitem->fiid.'</td>
            <td align="left">'.$orderitem->item.'</td>
            <td align="center">'.$orderitem->provider.'</td>
            <td align="center">'.$orderitem->qty.'</td>

          </tr>';
          $orderitem->isreq = "k";
          $orderitem->save();
        }
    }
    $kot->token .= '</table>';
    $kot->type = "full";
    $kot->save();

不知道原因,但是在我将类型从 mediumint(9) 更改为 int(11) 之后,现在代码可以正常工作了。如果您知道其中的原因,请在下方评论

当您尝试插入数据库时​​会发生此错误。 Laravel 写道您的主键已存在于数据库中。

在模型中,主键OrderitemModel orid? 是不是又写数据了

使用OrderitemModel::findOrNew($orid)