0

我正在尝试使用 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_orangedoor. tbl_products, CONSTRAINT tbl_products_ibfk_1FOREIGN KEY ( categoryname) REFERENCES tbl_sub_categories( sub_category_id) ON DELETE CASCADE ON UPDATE CASCADE)

4

1 回答 1

1

好的,您tbl_products在 column上有一个外键categorynamesub_category_id这引用了中的列tbl_sub_categories

这种陈述的关系意味着您必须在. 它显然不存在。那真的应该是一个字符串吗?categoryname'9'sub_category_idtbl_sub_categories9

如果没有更多信息,从技术上讲不可能为您提供帮助,但这里有:

有两种可能:

假设 1

您有列categoryname,并且您插入的名称与您也插入tbl_sub_categories的 ( ) 直接相关。sub_category_id51

解决方案 1从
中删除列。它不需要存在于正确规范化的数据库中。将外键更改为对列的约束,因为这似乎是您要查找的内容。categorynametbl_productssub_category_id

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

假设 2

您有一个单独的表,名为tbl_categories. 在这种情况下,您需要tbl_sub_categories在外键中引用此表。

于 2012-06-30T15:58:28.820 回答