SQLSTATE [23000]:违反完整性约束:4025 CONSTRAINT

Posted

技术标签:

【中文标题】SQLSTATE [23000]:违反完整性约束:4025 CONSTRAINT【英文标题】:SQLSTATE[23000]: Integrity constraint violation: 4025 CONSTRAINT 【发布时间】:2021-03-08 23:14:08 【问题描述】:

嘿,当我将数据从 laravel 插入 mysql 时出现错误 SQLSTATE[23000]:完整性约束违规:4025 CONSTRAINT

这里是商店控制器

public function store(Request $request)

    // $faker = Faker::create('id_ID');
    $image = $request->file('Product_photo');
    $extension = $image->getClientOriginalExtension();
    $name = $request->Name;
    $file_name = $name.'.'.$extension;
    $image->move("images/listcar/", $file_name);
    DB::table('car')
    ->insert([
        //'id' => $faker->unique()->numberBetween($min = 0, $max = 200),
        'product_photo' => $file_name,
        'name' => $request->Name,
        'production_year' => $request->Production_year,
        'price' => $request->Price,
        'merk' => $request->Merk,
        'description' => $request->Description,
        'varian' => $request->Variant,
        'machine' =>$request->Machine,
        'transmision' => $request->Transmision,
        'wheel' => $request->Wheel,
    ]);
    return redirect('/admin');

这是我的刀

<body>
<h1>Tambah Mobil</h1>
<div class="container">
    <form action="/car/add" method="post" enctype="multipart/form-data">
     csrf_field() 
    <th>Nama</th><br>
        <input type="text" name="Name" value=""><br/><br>
    <th>Tahun Produksi</th><br>
        <input type="text" name="Production_year" value=""><br/><br>
    <th>Harga</th><br>
        <input type="number" name="Price" value=""><br/><br>
    <th>Select Product Image</th><br>
        <input type="file" name="Product_photo" /><br/><br>
    <th>Merek</th><br>
        <input type="text" name="Merk" value=""><br/><br>
    <th>Deskripsi</th><br>
        <input type="textarea" name="Description" value=""><br/><br>
    <th>Varian</th><br>
        <input type="text" name="Variant" value=""><br/><br>
    <th>Mesin</th><br>
        <input type="text" name="Machine" value=""><br/><br>
    <th>Transmisi</th><br>
        <input type="text" name="Transmision" value=""><br/><br>
    <th>Penggerak Roda</th><br>
        <input type="text" name="Wheel" value=""><br/><br>
    <br>
        <input class="btn btn-primary" type="submit" value="Tambah Data Mobil">
    </form>
    <br>
    <br>
</div>

MySQL 结构

我真的不知道我哪里错了,所以如果有错误的概念请告诉我

【问题讨论】:

你不手动设置主键,插入记录时数据库会分配。删除此'id' =&gt; $faker-&gt;unique()-&gt;numberBetween($min = 0, $max = 200), @vandettadyckies 你需要将id设置为auto increment,然后不需要通过Faker设置。 报告错误提供完整的错误信息,不要剥离它。 好的,我已经更新了,现在我正在使用自动增量,但同样的错误仍然发生 尝试清理表格并从头开始,因为您的列“id”被搞砸了。自从您添加了自动增量属性后,这一切都是上帝了 【参考方案1】:

更改 mysql 表上的排序规则 - utf8mb4_general_ci :)

【讨论】:

【参考方案2】:

检查您的模型$fillable 数组。确保将插入记录的所有列都是 $fillable 的一部分

【讨论】:

以上是关于SQLSTATE [23000]:违反完整性约束:4025 CONSTRAINT的主要内容,如果未能解决你的问题,请参考以下文章

laravel 8 播种,SQLSTATE[23000]:违反完整性约束:

SQLSTATE[23000]:违反完整性约束:在 Laravel 5.2 中

SQLSTATE [23000]:违反完整性约束:1052 where 子句中的列 'tenant_id' 不明确

Laravel JOIN SQLSTATE [23000] 问题:违反完整性约束:字段列表中的 1052 列“album_id”不明确

SQLSTATE[23000]:Laravel 中的完整性约束违规

Innobyte 插件问题:SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行