如何自动更新外键和主键

时间:2014-01-18 11:31:50

标签: php mysql

table1:customer_details

c_id(primary key) AUTO INCREMENT
c_name
c_phone
(innoDB)

table2:service

si_id(primary key) AUTO INCREMENT
c_id2(foreign key) references customer_details(c_id) on delete cascade on delete update
si_1
si_2
si_3
si_4
si_5
(innoDB)

我已编写php代码进行更新,以便将值插入table2(service)的si_1,si_2,si_3,si_4,si_5。

每当我通过html页面将值插入table2时,我都会收到错误消息 “错误:无法添加或更新子行:外键约束失败”

以下是我的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);

1 个答案:

答案 0 :(得分:1)

试试这个:

$query="insert into service_initiation(c_id2,si_1,si_2,si_3,si_4,si_5) values ('$value1','$value2','$value3','$value4','$value5','$value6')";

您应该将si_id从列列表中删除,以便通过自动增量自动分配。您需要将c_id2设置为分配给引用表的ID。