外部キーを追加する際のエラー
-
24-10-2019 - |
質問
私には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)
解決
私はあなたの他の質問についてのコメントで約1時間前にあなたのためにこれに答えましたが、ここに再びあります:
実行して、そのエラーの詳細を取得できます SHOW ENGINE INNODB STATUS\G
そして読んで LATEST FOREIGN KEY ERROR
セクション。
この失敗の最も可能性の高い理由:
- Tab1.NameとTab2.Nameはまったく同じデータ型ではありません
- Tab1.Nameは一意ではありません
他のヒント
これを試して:
alter table tab2
add foreign key my_key(name) references tab1(name)
たぶんあなたの鍵は名前を持っているはずですか?
デフォルトのMySQLストレージエンジン(ISAM、MyISAM)で外部キーを定義することはできません。InnoDBをエンジンとして使用してから、外部キーの制約を追加します。
所属していません StackOverflow