2

このエラーを解決する必要はありません。自分でアプローチできるように、それが何を意味するのかを理解する必要があるだけです。

Cannot add or update a child row: a foreign key constraint fails
  (`db`.`transaction`, CONSTRAINT `transaction_ibfk_2`
    FOREIGN KEY (`product_id`) REFERENCES `product` (`id`))

INSERT INTO `transaction` ( `client_id`, `cost`, `website_id`, `product_id`,
    `template_number`, `value`, `order_id` )
    VALUES ( '17', '', '2480', '', '', '12', '1');

外部キーとは何ですか? どのように設定されていますか?

とはCONSTRAINT transaction_ibfk_2どういう意味ですか?

これは、 というテーブルが必要ということtransaction_ibfk_2ですか?

ありがとう。

4

3 に答える 3

0

これは、参照された列で使用できない値を外部キー列に追加しようとしているか、外部キー列に空白を追加しようとしていることを意味します。つまり、許可されていない空白として product_id を追加しようとしています。外部キー列のすべての値は、メインの参照列 ID に存在する有効な値である必要があります。

于 2010-09-16T09:53:02.497 に答える
0

制約名とテーブルの間に必ずしも関係があるとは限りませんが、ほとんどの人は作業を楽にするために適切な名前を付けています。

これはすべて、transaction_ibfk_2制約があることを意味します。実際の問題は、メッセージの残りの部分にあります。

FOREIGN KEY (product_id) REFERENCES product  (id)

product最初にテーブルに行を挿入する必要があります。そこに挿入するものは、挿入しようとしているidものである必要があります(これは何らかの理由で-これは実際の値(またはおそらくNULL)である必要があると確信しています)。product_idtransaction''

create tableまたはalter tableDDL ステートメントの句を使用して、外部キーを作成できます。

于 2010-09-16T09:53:30.343 に答える
0

productid(リストの4番目の項目)として空の文字列を挿入しています

INSERT INTO transaction  
(client_id, cost, website_id, product_id, template_number, value, order_id) 
VALUES ('17', '', '2480', '', '', '12', '1')

参照整合性制約が設定されてproductidおり、参照されるテーブルに一致する sのみを挿入する必要がありproductます。

于 2010-09-16T09:51:37.490 に答える