1

データベースに2つのテーブルがあります。

最初の表:学生

Field           Type          Null    Key   Default
id              int(11)       NO      PRI   NULL
class_id        int(11)       NO      PRI   NULL
admission_id    int(11)       NO      PRI   NULL
school_id       int(11)       NO      PRI   NULL
name            varchar(64)   YES           NULL
admin_date      datetime      YES           NULL

2番目の表:入場料

Field           Type          Null    Key   Default
id              int(11)       NO      PRI   NULL
class_id        int(11)       NO      PRI   1
school_id       int(11)       NO      PRI   NULL
name            varchar(64)   YES           NULL
admin_date      datetime      YES           NULL

次に、後でテーブルに導入したAdmissionテーブルのclass_id列に入力します。デフォルトでは、すべてのclass_idが1に設定されているため、学生に応じて更新する必要があります。私がしていたこと:

   Update Admission
   set class_id = (select class_id from Students where Students.school_id = Admission.school_id);

エラーメッセージが表示されます:エラー1452(23000):子行を追加または更新できません:外部キー制約が失敗します

私が間違っている場所、または列に記入するための他の代替ソリューションを手伝ってくれませんか。前もって感謝します

4

1 に答える 1

3

これを試して ::

Update Admission
inner join Students on (Students.school_id = Admission.school_id)
   set Admission.class_id = Students.class_id
于 2012-12-05T13:39:49.783 に答える