【发布时间】:2020-04-29 05:00:52
【问题描述】:
请检查我的信息更新是否正确。
error Integrity constraint violation: 1062 Duplicate entry '45' for key 'PRIMARY' (SQL: update `studentdetails` set `SID` = 45, `fname` = sds, `lname` = sad, `dob` = 2020-04-22, `gender` = male, `created_at` = 2020-04-29 11:55:43)"
复合键
表格学生详情
SID pk,
fname,
lname,
dob,
gender
学生地址表
SID pk,
zipcode pk,
street,
hname,
city,
state,
country
学生登记表
SID pk,
grade pk,
edate
控制器:
public function update($SID,Request $request)
{
if(is_numeric($SID))
{
$SID = $request->get('SID');
$fname = $request->get('fname');
$lname = $request->get('lname');
$dob = $request->get('dob');
$gender = $request->get('gender');
$zipcode = $request->get('zipcode');
$city = $request->get('city');
$state = $request->get('state');
$country = $request->get('country');
$street = $request->get('street');
$hname = $request->get('hname');
$grade = $request->get('grade');
$edate = $request->get('edate');
if(is_numeric($SID) && !empty($fname) && !empty($lname) && !empty($dob) && !empty($gender)
&& is_numeric($zipcode) && !empty($city) && !empty($state) && !empty($street) && !empty($hname) && !empty($country)
&& !empty($grade) && !empty($edate))
{
DB::table('studentdetails')->update([
'SID' =>$SID,
'fname' =>$fname,
'lname' =>$lname,
'dob' =>$dob,
'gender' =>$gender,
'created_at' =>date('Y-m-d H:i:s'),
]);
DB::table('studentaddress')->update([
'SID' =>$SID,
'zipcode' =>$zipcode,
'city' =>$city,
'state' =>$state,
'country' =>$country,
'street' =>$street,
'hname' =>$hname,
'created_at' =>date('Y-m-d H:i:s'),
]);
DB::table('studentenrollment')->update([
'SID' =>$SID,
'grade' =>$grade,
'edate' =>$edate,
'created_at' =>date('Y-m-d H:i:s'),
]);
return MyResponse::success('ระบบได้บันทึกข้อมูลเรียบร้อยแล้ว','/student');
}else{
return MyResponse::error('กรุณาป้อนข้อมูลให้ครบ');
}
}
【问题讨论】:
-
您能否更新您的问题以包含迁移文件?
-
你能分享你的
StudentDetail模特吗? -
该消息告诉您,您的表中已经有一个
SID为 45 的条目。要么使用另一个不存在的 SID,要么将更新查询中的 SID 保留为自动增加它的值 -
如何更新主键?我不明白
-
我的SID是学号吗。我希望它能够被修改或可以更新,所以把它戴上,但这是你看到的还有没有其他方法可以更新我的 SID?