sql >> データベース >  >> RDS >> Mysql

エラーコード:データ型が一致する場合の1822、複合キー

    問題は、外部キーsubj_codeが原因です。 、は複数列の一部です 参照されるテーブルenrolmentの主キー(PK) :

    primary key (stud_id, subj_code, semester, year)
    

    ここで、この列(subj_code )は左端ではありません

    テーブルstudent 外部キー列stud_idであるため、この問題は発生しません。 参照されるテーブルのPKの左端の列です。

    これを解決するには、参照される列の新しいインデックスを作成できます:

    ALTER TABLE enrolment ADD INDEX subj_code_idx (subj_code);
    

    注: 参照されるテーブルgradeについても同じことを行う必要があります 他の外部キーで。

    デモはこちら



    1. 修正:MySQL –SELECTコマンドがユーザーに拒否されました

    2. SQLite Strftime()関数の有効なフォーマット文字列置換

    3. MySQL5.5以降のBIGINT範囲外エラー

    4. グループ内で注文しますか?