2016-07-12 36 views
0

phpmyadminで2つのテーブルを作成しているうちに、このようなエラーが発生します。は、phpmyadminで外部キー制約を追加できません

MySQLは言った:ドキュメント

#1215 - 外部キー制約を追加することはできません

私のテーブル構造がある

CREATE TABLE `iwd_storelocator_manufacturer` (
`entity_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT , 
`name` varchar(255) NOT NULL , 
`code` varchar(255) NOT NULL , 
`grayscale_image` varchar(255) NULL , 
`color_image` varchar(255) NULL , 
PRIMARY KEY (`entity_id`) 
); 

CREATE TABLE `iwd_storelocator_manufacturer_to_store` (
`manufacturer_id` int(11) UNSIGNED NOT NULL , 
`store_id` int(11) NOT NULL , 
`preferred` int NULL , 
PRIMARY KEY (`manufacturer_id`, `store_id`), 
FOREIGN KEY (`store_id`) REFERENCES `iwd_storelocator_store` (`store_id`) ON DELETE RESTRICT ON UPDATE CASCADE, 
FOREIGN KEY (`manufacturer_id`) REFERENCES `iwd_storelocator_manufacturer` (`entity_id`) ON DELETE RESTRICT ON UPDATE CASCADE 
); 

はあなたが私を伝えることができいただきましたことに問題?

これは間違っている内容を正確に把握するために

iwd_storelocator_store

+0

これらのテーブルは正常に作成されましたが、FKがなくてもiwd_storelocator_storeになりました。多分このテーブルは問題の理由ですか? –

+0

'iwd_storelocator_store'テーブルの構造はどこですか? – 1000111

+0

私のiwd_storelocator_storeテーブル構造が与えられています。 – Sheen

答えて

1

私iwd_storelocator_storeテーブルで、あなたはLATEST FOREIGN KEY ERRORセクションで確認する必要があります。これを見つけるために

使用このクエリ:

また
SHOW ENGINE INNODB STATUS 

、すべてのデータ型が同じであることを確認してください:子列のデータ・タイプは、親列からのデータ型と一致する必要があります。問題は、テーブルの作成(このエラーを引き起こす可能性がある)、ちょうどので、あなたではなく、すべての親テーブル前に、子テーブルを作成することよりも、任意の順序でテーブルを作成することができset foreign_key_checks=0を実行する順序がある場合

最後に、すべてのテーブルでエンコードが同じであることを確認してください。

EDIT:あなたのケースで、あなたも私たちにiwd_storelocator_storeテーブル

の構造を与える必要があります今、私たちはあなたのiwd_storelocator_storeテーブルを持っていることを、私はそれが主ではないとして、あなたがstore_id列に索引を作成する必要があることだと思いますテーブルのキー

関連する問題