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

mysql errno:150「外部キー制約が正しく形成されていません」-MariaDB

    まず、コードにいくつかのエラーがあり、テストが少し面倒になります。次に、両方のテーブルで同じ文字セットを使用していることを確認してください。message_mapをutf8に変更しました:

    DROP TABLE message_map;
    CREATE TABLE message_map (
      message_from varchar(15) NOT NULL,
      message_id varchar(15) NOT NULL,
      message_to varchar(15) NOT NULL,
      message_status bit(1) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    ALTER TABLE message_map
        ADD PRIMARY KEY (message_from,message_id,message_to),
        ADD KEY FK_ij6tystusydqijqp8lgoigo1c (message_id);
    
    ALTER TABLE message_map 
        ADD CONSTRAINT FK_MSG_MAP_USER
        FOREIGN KEY (message_from)
            REFERENCES user (USER_ID)
                ON DELETE CASCADE
                ON UPDATE CASCADE,
        ADD CONSTRAINT FK_MSG_MAP_USER_TO
        FOREIGN KEY (message_to)
            REFERENCES user (USER_ID)
                ON DELETE CASCADE
                ON UPDATE CASCADE;
    

    外部キー定義からデモを削除しました。




    1. MySQL:カーディナリティ/選択性の低い列=インデックスを作成する方法

    2. MySQL-スコアテーブルでユーザーのランクを選択

    3. Windows10上のVisualStudio2015からlibpqxxをリンクする

    4. 手順バッファオーバーフロー