0

2 つの mysql テーブルがあります: 1- 顧客 2- lite_order

customers テーブルの列: customer_id 主キーと自動インクリメント フィールド Email hashed_pa​​ssword

lite_order フィールドには、複数の注文が同じ顧客に属している可能性があるすべての注文フィールドが含まれており、多くのフィールドがあります。最も重要なもの:

lite_order_id主キーと自動インクリメントフィールドcustomer_idを「インデックス」として作成し、phpmyadminの関係ビューから、この列を外部キーとして選択して、顧客テーブルの主キーを参照しました。

問題は、新しい顧客がサインアップし、彼の情報が顧客テーブルに送られ、データが lite_order テーブルに送られる注文フォームに記入すると、このステップでエラーが発生することです。

Error: Cannot add or update a child row: a foreign key constraint fails (`DB_NAME`.`lite_order`, CONSTRAINT `lite_order_ibfk_2` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`customer_id`) ON UPDATE CASCADE)

このエラーを修正するにはどうすればよいですか? 顧客テーブルが機能しており、顧客テーブルのcustomer_idに値が設定されていますが、注文フォームが送信されると、この値が他のテーブルのcustomer_id列にも移動する必要があります。そして、私はこのエラーを受け取ります!.

4

1 に答える 1

0

外部キー「customer_id」をテーブル「lite_order」に割り当てることで、データの信頼性が保証されます。つまり、顧客がいないと lite_order を挿入できません。

したがって、最初に顧客を挿入し、次に注文を挿入する必要があります。

使用する拡張子 (mysql、mysqli、pdo) に応じて、最後に挿入された customer_id を次の方法で取得します: - mysql - mysqli - pdo

于 2013-05-06T13:56:28.983 に答える