试图一次更新两个表MySQL

时间:2014-01-02 18:06:02

标签: php mysql database relation

我一直在尝试让我的数据库工作,以便将不同表中的cuisineid列链接在一​​起。我已经在两个表上定义了主键和外键,但是当我尝试更新它们时,我得到了这个错误:

Insert failed: Cannot add or update a child row: a foreign key constraint fails 
(`ml11maj_Databasetest`.`Nation`, CONSTRAINT `Foreign Key` FOREIGN KEY (`cuisineid`) 
REFERENCES `recipename` (`cuisineid`) ON DELETE CASCADE ON UPDATE CASCADE)

其余的上传工作,但没有添加到Nation(菜单ID是主键,当前设置为AI)表,目前插入的代码看起来像这样

if ($cuisine !=''){
  $query = "INSERT INTO`Nation`(cuisine_type)VALUES('$cuisine')";
  mysqli_select_db($db_server, $db_database); 
  mysqli_query($db_server, $query) or
  die("Insert failed: " . mysqli_error($db_server));
}

EDIT 国家表包含两列

-Cuisine_type Varchar -cuisineid int Primary

recipename表

-recipeid int(255)AUTO_INCREMENT -mealname文本
-b_l_d varchar(30) - 成分文本
-hours int(11)
-minutes int(11)
-recipe text utf8_bin
-feeds int(11)
-imagepath varchar(100)
-userid int(11)
-cuisineid int(255)

1 个答案:

答案 0 :(得分:0)

您的插入没有cooking_id,因此外键约束失败,正如它告诉您的那样。如果您希望该列为NULLABLE,则可以省略插入中的cuisine_id列。