を失敗した私は、このテーブルがあります。のMySQL:エラーコード:1452は、子行を追加または更新できません:外部キー制約が
CREATE TABLE comments(
comment_id int(11) NOT NULL auto_increment,
user_id int(11) NOT NULL,
product_id int(11) NOT NULL,
comment_text varchar(1000) COLLATE utf8_czech_ci NOT NULL,
uploaded datetime NOT NULL,
primary key(comment_id),
constraint fk_user_comments foreign key(user_id) references user(user_id) ON UPDATE CASCADE ON DELETE CASCADE,
constraint fk_product_comments foreign key(product_id) references product(product_id) ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
を、私は、このテーブルにデータを挿入しようとしています。
INSERT INTO comments(user_id,product_id,comment_text,uploaded) VALUES(1,'brbr',1,Now());
しかし、私はこのエラーを取得しておく何らかの理由:ID 1の
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`project`.`comments`, CONSTRAINT `fk_product_comments` FOREIGN KEY (`product_id`) REFERENCES `product` (`product_id`) ON DELETE CASCADE ON UPDATE CASCADE)
ユーザーが存在し、IDが1の製品は今私が問題を引き起こしていただきまし見当がつかないので存在します。
プライマリキーのcomment_idに値を挿入していません。それは間違いです。最初に修正してください。また、製品とユーザーのテーブルから構造とデータを共有できますか?そしてproduct_idは文字列値をintとして宣言していますが、これは間違っています。だからこそあなたの質問は失敗します。 – Venkat
ああ...私。今私は馬鹿だと感じる:D。ありがとう。 – NoSkilz
@Venkat:_ "主キーcomment_idの値を挿入していません。それは間違っています。" 'auto_increment'フィールドです。全体のポイントは、それを自分で設定することではありません。 –