MySQL(innoDB)でリレーション設定時に「インデックスは設定されていません」エラー

presented by 役に立つかもしれないBlog

phpMyAdminでテーブルのリレーション設定をしていて、DELETE ON CASCADEの設定をやっていたところ、ちゃんとインデックスも張っているはずなのに「インデックスは設定されていません」というエラーが出てしまいました。

テーブルの構成やフィールド型を見ていると、リレーション元のフィールドがINT(10)であるのに対し、リレーション先のフィールドがINT(11)になっちゃってました。 おかしいな~。ちゃんと設定したと思ったんだけど。

どうやら以下のような条件下じゃないとリレーションが張れないみたいですね。

後で変更してもダメ

じゃー、INT(10)に変更すればいいんでしょ?ってことでphpMyAdmin上の編集画面で変更して再度リレーションを張ってみたんですが、また「インデックスは設定されていません」と同じエラーが。 どうやら後で編集してもダメみたいです。

DROP構文で一度テーブルを削除し、再度テーブルを定義したらうまくいきました。

    このエントリーをはてなブックマークに追加

このページに関連のある記事はこちら

コメントフォーム