1

このトピックについて他にもいくつか質問がありますが、それらの解決策が私のテーブルにどのように適用されるかわかりません。sqlfiddleをチェックしてください。スキーマがうまく構築されていることがわかります。

基本的に、1 つのテーブルは連絡先/人物のテーブルです。2 番目のテーブルは国のテーブルです。contacts.country_idと の間に外部キー参照を作成しようとしていますcountries.id

次に、左側のパネルに次を追加します。

ALTER TABLE `ultra_contacts`
ADD INDEX `fk_test` (`country_id`),
ADD CONSTRAINT `fk_test` FOREIGN KEY (`country_id`) REFERENCES `ultra_countries` (`id`) ON UPDATE CASCADE ON DELETE CASCADE`

テーブルの変更コードが何らかの理由で機能していません。どんな助けでも大歓迎です。

エラーは次のとおりです。Schema Creation Failed: Can't create table 'db_e342e.#sql-7711_1a4d2' (errno: 150):サードパーティのプログラム (HeidiSQL) を使用すると、エラーはもう少し詳細になります。

Foreign key constraint is incorrectly formed

4

1 に答える 1

4

MyISAM テーブルで外部キーを使用しようとしていますが、これは許可されていません (InnoDB でのみ機能します)。ここを見てください: http://sqlfiddle.com/#!2/64951元のものから変更したのはテーブルタイプ (MyISAM から InnoDB へ) だけで、次に制約を追加しました。うまくいきました。

完全な開示 - 私は SQL Fiddle の作成者です :)

于 2012-06-19T04:42:53.967 に答える