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

ERRO1215。MySqlInnoDB

    テーブルの作成をテストしました。

    次に、外部キーエラーに関する詳細情報を取得しました:

    mysql> show engine innodb status\G
    
    ------------------------
    LATEST FOREIGN KEY ERROR
    ------------------------
    2018-02-20 14:51:33 700002d90000 Error in foreign key constraint of table calls/called:
    
        FOREIGN KEY (`Code`)
        REFERENCES `calls`.`city` (`Code`)
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      CONSTRAINT `Number`
        FOREIGN KEY (`Number`)
        REFERENCES `calls`.`subscriber` (`Number`)
        ON DELETE CASCADE
        ON UPDATE CASCADE):
    Cannot find an index in the referenced table where the
    referenced columns appear as the first columns, or column types
    in the table and the referenced table do not match for constraint.
    ...
    

    問題があります:cityに複合主キーがあります 列(Name, Code) 。このためには、1つを作成する必要があります 両方を参照する外部キー制約 親の主キーの列。

    このように:

    CONSTRAINT `Name`
    FOREIGN KEY (`Name`, `Code`)
    REFERENCES `calls`.`city` (`Name`, `Code`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
    

    各列に制約を宣言しないでください—キーの両方の列を参照する1つの制約を宣言してください。




    1. MariaDBでのUPDATEXML()のしくみ

    2. JDBC接続-Class.forNameとClass.forName()。newInstance?

    3. SQLデータの検出と分類

    4. MySQLが同じテーブルに参加