我有两张 table 。
customer_details(c_id,c_name,c_phone) primary_key(c_id) ENGINE:innoDB AUTO INCREMENT
service_initiation(c_id2,si_id,si_1,si_2,si_3,si_4,si_5) primary_key(si_id) AUTO INCREMENT and ENGINE:innoDB foreign_key(c_id2) references customer_details(c_id) on delete cascade and on update cascade
但是,我通过 html 页面插入数据,并使用 php 代码使用 phpmyadmin 将值插入数据库。
但是在将值插入表中时出现错误。
错误是:
error inserting values to the table: Cannot add or update a child row: a foreign key constraint fails (
workshop_service
.service_initiation
, CONSTRAINTservice_initiation_ibfk_1
FOREIGN KEY (c_id2
) REFERENCEScustomer_details
(c_id
) ON DELETE CASCADE ON UPDATE CASCADE).
下面是我的 PHP 代码:
$value1=mysql_insert_id();
$value2=$_POST['si_1'];
$value3=$_POST['si_2'];
$value4=$_POST['si_3'];
$value5=$_POST['si_4'];
$value6=$_POST['si_5'];
$query="insert into service_initiation(c_id2,si_id,si_1,si_2,si_3,si_4,si_5) values ('$value1','','$value2','$value3','$value4','$value5','$value6')";
mysql_query($query);
最佳答案
您没有更新 customer_details 中的任何数据,因此不应更新外键。所以,你的标题具有误导性。
当您将数据插入子表并收到此错误时,这意味着您尝试插入外键字段的值在父表中丢失。
关于php - 外键没有与主键一起更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21276602/