0

私は2つのテーブルを持っています:tab1,tab2

tab2 に外部キーを追加したいので、このクエリを書きました

ALTER TABLE tab2
ADD FOREIGN KEY(name) REFERENCES tab1(name)

しかし、私はこのエラーが発生します:

error 1005(HY000):can't create table 'club.#sql-6f0_2' (errno:150)

なにが問題ですか?

Edit

i write this tables only for test.

tab1

name char(20) private key

lname char(20)


tab2

ssn int private key

name char(20)
4

3 に答える 3

4

私はあなたの他の質問へのコメントで約1時間前にあなたのためにこれに答えましたが、ここにもう一度あります:

SHOW ENGINE INNODB STATUS\Gセクションを実行して読むことで、そのエラーの詳細を取得できますLATEST FOREIGN KEY ERROR

この失敗の最も可能性の高い理由:

  • tab1.name と tab2.name は正確に同じデータ型ではありません
  • tab1.name は一意ではありません
于 2011-03-15T21:29:05.770 に答える
0

これを試して:

alter table tab2
add foreign key my_key(name) references tab1(name)

多分あなたの鍵には名前が必要ですか?

于 2011-03-15T21:31:21.180 に答える
0

デフォルトのMySQLストレージエンジン(ISAM、MyISAM)で外部キーを定義し、エンジンとしてInnoDBを使用してから、外部キー制約を追加することはできません。

于 2011-03-15T21:32:17.640 に答える