违反了完整性约束 - 未找到父键

时间:2013-02-27 09:08:30

标签: oracle

我使用 Oracle 11g作为我的数据库,我有2个名为 CATEGORY PRODUCT 的表。

CATEGORY - cat_id NUMBER not null (PK)
         , cat_name VARCHAR2(100)

PRODUCT - PRO_ID NUMBER not null (PK)
        , PRO_NAME VARCHAR2(100)
        , PRICE BINARY_FLOAT
        , DESCRIPTION VARCHAR2(200)
        , CATEGORY_ID NUMBER

category_id 外键 CATEGORY 表的 cat_id 。)

当我尝试将数据插入 CATEGORY 表时,它可以正常工作。以下是我的sql语句。

INSERT INTO category (cat_name) VALUES ('dairy');
INSERT INTO category (cat_name) VALUES ('meats');
INSERT INTO category (cat_name) VALUES ('bakery');
INSERT INTO category (cat_name) VALUES('fruit & veg');

以下显示如何存储在表格中的数据(从类别中选择*

CAT_ID                 CAT_NAME                                                                                             

  1                      dairy                                                                                                
  2                      meats                                                                                                
  3                      bakery                                                                                               
  4                      fruit & veg

但是,当我尝试将数据插入到 PRODUCT 表时,它会在插入几次后给出错误。

Error starting at line 6 in command:
INSERT INTO product (pro_name, price, description, category_id) VALUES ('organicmeat patties', 2.29, 'rolled in fresh herbs<br>2 patties (250g)', 2)

 Error report:
SQL Error: ORA-02291: integrity constraint (TRNINT01.GAYALK_PRODUCT_GAYALK_CAT_FK1)violated - parent key not found

这是 PRODUCT

的sql语句
INSERT INTO product (pro_name, price, description, category_id) VALUES ('milk', 1.70, 'semi skimmed (1L)', 1);
INSERT INTO product (pro_name, price, description, category_id) VALUES ('cheese', 2.39, 'mild cheddar (330g)', 1);
INSERT INTO product (pro_name, price, description, category_id) VALUES ('butter', 1.09, 'unsalted (250g)', 1);
INSERT INTO product (pro_name, price, description, category_id) VALUES ('free range eggs', 1.76, 'medium-sized (6 eggs)', 1);

INSERT INTO product (pro_name, price, description, category_id) VALUES ('organic meat patties', 2.29, 'rolled in fresh herbs<br>2 patties (250g)', 2);
INSERT INTO product (pro_name, price, description, category_id) VALUES ('parma ham', 3.49, 'matured, organic (70g)', 2);
 INSERT INTO product (pro_name, price, description, category_id) VALUES ('chicken leg', 2.59, 'free range (250g)', 2);
  INSERT INTO product (pro_name, price, description, category_id) VALUES ('sausages', 3.55, 'reduced fat, pork<br>3 sausages (350g)', 2);

INSERT INTO product (pro_name, price, description, category_id) VALUES ('sunflower seed loaf', 1.89, '600g', 3);
INSERT INTO product (pro_name, price, description, category_id) VALUES ('sesame seed bagel', 1.19, '4 bagels', 3);
INSERT INTO product (pro_name, price, description, category_id) VALUES ('pumpkin seed bun', 1.15, '4 buns', 3);
INSERT INTO product (pro_name, price, description, category_id) VALUES ('chocolate cookies', 2.39, 'contain peanuts<br>(3 cookies)', 3);

INSERT INTO product (pro_name, price, description, category_id) VALUES ('corn on the cob', 1.59, '2 pieces', 4);
INSERT INTO product (pro_name, price, description, category_id) VALUES ('red currants', 2.49, '150g', 4);
INSERT INTO  product (pro_name, price, description, category_id) VALUES ('broccoli', 1.29, '500g', 4);
INSERT INTO product (pro_name, price, description, category_id) VALUES ('seedless watermelon', 1.49, '250g', 4);

0 个答案:

没有答案