いくつかのコンテキストでは、私は不和のためのjavascriptボットを作成しています、私は多くの異なる情報を記録できるように大きなデータベースを作成しています。私はすべての編集 MariaDBの下でMySQLと奇妙な外部キーエラー
- ストアメッセージ
- 店の歴史的メッセージは、簡単にこれらの歴史的なメッセージの中に記載されているユーザーを検索できるように
データベースのこの部分は使用されています。
私はMariaDBをarch linuxの下でMySQL Workbenchで使用しています。 Here's the relevant part of the database design, done on dbdesigner.net. 問題は、一番左のテーブルで発生します。
そして、ここでは私のエラーメッセージです:
ライン158でスクリプトERROR 1005(HY000)を実行終了:テーブル
test
を作成することができません 。#sql-1bb_6
:操作は、だから私は158のように私の外部キーに問題があることを知っているが、私は問題を見つけることができない終了コード1
で失敗しました(エラー番号150「外部キー制約 が間違って形成されています」)。
ALTER TABLE `messageContentHistoryMentions`
ADD CONSTRAINT `messageContentHistoryMentions_fk1`
FOREIGN KEY (`messageContentCount`) REFERENCES `messageContentHistory`(`messageContentCount`);
これについて私を困惑させる部分は、158が異なるフィールドのみで、156行と全く同じ方法でフォーマットされているということです。以下の行156が実行されます。
ALTER TABLE `messageContentHistoryMentions`
ADD CONSTRAINT `messageContentHistoryMentions_fk0`
FOREIGN KEY (`messageID`) REFERENCES `messageContentHistory`(`messageID`);
あなたはおそらく私が非常に混乱している理由を理解することができます。
いくつかのより多くの情報:
- これは新しいので、MariaDBのインストールを前提とデフォルトは
- のInnoDBエンジンが
- を使用しているされたテーブルのすべてが外国の
utf8mb4_unicode_ci
- 両側の照合を持っていますキーは主キーで、整数で長さは8で、デフォルトは0です。
ありがとうございました。
編集:エラーが類似しているが、それはしている状況は非常に異なっているとして、これは重複しない
150は、多くの場合、制約が間違った順序で適用されたことを意味します。 –
[mysql外部キー制約が間違って形成されているエラーです]を参照してください(https://stackoverflow.com/questions/8434518/mysql-foreign-key-constraint-is-incorrectly-formed-error) – joanolo
[mysql外部キー制約は正しく形成されていませんerror](https://stackoverflow.com/questions/8434518/mysql-foreign-key-constraint-is-incorrectly-formed-error) – joanolo