0

子テーブルの外部キーが、親テーブルに実際にある値を自動的に取得できるかどうかを誰かが知ることができますか? 学生テーブルとコース テーブルの 2 つのテーブルがあります。学生 SSC はコースの外部キーです。データを学生テーブルに正しく挿入しています。しかし、データをコース テーブルに挿入するとエラーが発生しますか?何か提案はありますか? 変数の値は、フォームの post メソッドを介して取得されます。

$query1=mysql_query("INSERT INTO course VALUES('','$subject','$total','$attendce','$ssn')")or die(mysql_error());

これは私が得ているエラーです....

子行を追加または更新できません: 外部キー制約が失敗します (`cast_db`.`course`, CONSTRAINT `course_ibfk_1` FOREIGN KEY (`cnic`) REFERENCES `student` (`cnic`) ON DELETE CASCADE ON UPDATE CASCADE)

4

1 に答える 1

4

それは外部キーの仕組みではありません。最初に親レコードを作成し、そのレコードの ID (主キーが何であれ) 値を取得してから、子レコードの挿入でその値を使用する必要があります。

覚えておいてください - 親テーブルは多数のレコードを持つことができます。これらのレコードのどれが新しい子レコードの親であるかをデータベースが知る方法はありません。「この新しい子レコードには親 X がある」と明示的に言わなけれなりません。

于 2012-11-29T21:31:44.550 に答える