2012-01-16 29 views
3

データベースに外部キー制約を追加する際に問題があります。テーブルに外部キー制約を追加できません

私はすべてのテーブルにInnoDBエンジンを実行していて、データの種類とサイズを被保険者しているが、両方のテーブルで同じです。

また、私は、MySQLのコマンドライン、phpMyAdminはMySQLのワークベンチと、ない運を使って試してみました。

私は索引列をチェックすることができ、また参照列を選択しないMySQLのワークベンチでいるので、私は見下ろす午前、別の問題があります。

他にも探しているものはありますか?

ほとんどすべてのテーブルでテストデータがありますが、それは問題ですか?

EDIT:エラーが表示されたときは、通常、「#1005 - ドキュメント「db_name。#sql-43d_8e(errno:150)」を作成できません。これは、データの不一致に関する説明です。それ以外はMySQL Workbenchは私にそれをさせませんので、私は問題を知らない。あなたが外部キーで正しくリンクすることはできませんデータを、持っている場合、たとえば、あなたがid_articleと「コメント」のエントリー= 10を持っていますが、あなたが持つ「記事」にエントリを持っていない、重要でしまう

+1

データが一致しない場合は... – prodigitalson

+0

参照するデータはすべてINT(10)型です... – guyfromfl

+0

値が外部テーブルに一致しない場合は、 – prodigitalson

答えて

1

id = 10 ..その場合、外部キーを追加できません

+0

hmmテーブルをクリアしてやり直してみましょう...データの整合性を保つために制約を適用してデータを追加したので、これが問題になる可能性があります。 – guyfromfl

4

また、列が一致していることを確認する必要があります。私が持っていた問題は、署名されたintと通知されていないものが気づかなかったことです。

1

私は、同じ問題を抱えていた参照先テーブルの主キーと外部キーのデータ型は同じであった、まだMySQLは外部キー制約を追加することができなかったので、私は2番目のテーブルを作成することができませんでした。何らかの理由で、私がテーブルを作成した順序だった。最初のテーブルを作成し、データを追加してから2番目のテーブルを作成するとエラーが発生しました。最初のテーブルにデータを追加する前に最初のテーブルと2番目のテーブルを作成するとエラーメッセージは表示されませんでした。