无法将数据插入表

时间:2012-06-30 15:04:22

标签: mysql insert

我正在尝试使用insert将数据插入表中。

INSERT INTO tbl_products (user_id,productkey,listitemname,itemdescription
      ,thumbnail,rollover,itemfile,themepreview1,themepreview2,themepreview3
      ,themepreview4,categoryname,sub_category_id,browsercompatiable,filesinclude
      ,noofcolumns,layout,demourl,itemtags,create_date,update_date,license_number) 
VALUES (117,'395cb2e171ac','Baby','This is baby'
      ,'a4fb673be7b5','d6232cad4955','e3fe02d02c82','dc7067dffd0a','72f48e9a9585'
      ,'35b016bf135c','6e36d212f3c0','9',51,'ie8,','ie8,',1,1,'http://asdsaf.com'
      ,'rwreewr','2012-06-30','2012-06-30','1565-5827-7289-918')

但是没有插入数据,MySQL显示以下错误:

  

1452 - 无法添加或更新子行:外键约束   失败(wwwwdmar_orangedoortbl_products,CONSTRAINT   tbl_products_ibfk_1 FOREIGN KEY(categoryname)参考   tbl_sub_categoriessub_category_id)ON DELETE CASCADE ON UPDATE   CASCADE)

1 个答案:

答案 0 :(得分:1)

好的,您在tbl_products列的categoryname上有一个外键。这引用了sub_category_id中的tbl_sub_categories列。

此陈述的关系意味着您必须在{{1}的categoryname列中为'9'sub_category_id)插入的值}}。它显然不存在。那个tbl_sub_categories真的应该是一个字符串吗?

如果没有更多信息,技术上无法帮助您,但这里有:

有两种可能性:

假设1

9中有categoryname列,您插入的名称与您正在插入的tbl_sub_categories直接相关(sub_category_id)。

解决方案1 ​​
51中删除列categoryname。在正确规范化的数据库中没有必要它。将外键更改为列tbl_products上的约束,因为这是您正在查找的内容。

解决方案2
将外键更改为sub_category_id categoryname。这是为了阻止您插入与引用列不匹配的值。

假设2

您有一个名为sub_category_id的单独表格。在这种情况下,您需要在外键中引用此表而不是tbl_categories