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' => $faker->unique()->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”不明确