2016-07-12 12 views
0

Beim Erstellen von 2 Tabellen in phpmyadmin erhalte ich einen Fehler wie folgt.kann keine Fremdschlüsseleinschränkung in phpmyadmin hinzufügen

MySQL sagte: Dokumentation

# 1215 - Kann nicht fremd hinzufügen Schlüsseleinschränkung

Meine Tabellenstrukturen sind

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 
); 

Können Sie mir sagen, was ist das Problem darin?

Das ist mein iwd_storelocator_store Tisch

iwd_storelocator_store

+0

Ich habe diese Tabellen erfolgreich erstellt, aber ohne FK zu iwd_storelocator_store. Vielleicht ist dieser Tisch Grund für das Problem? –

+0

Wo ist die Struktur der Tabelle "iwd_storelocator_store"? – 1000111

+0

Meine iwd_storelocator_store Tabellenstruktur ist angegeben. – Sheen

Antwort

1

Um genau zu wissen, was falsch ist, Sie in LATEST FOREIGN KEY ERROR Abschnitt überprüfen müssen.

Verwenden Sie diese Abfrage, dies herauszufinden:

SHOW ENGINE INNODB STATUS 

Stellen Sie außerdem sicher, dass alle Datentypen gleich sind: der Datentyp des Kindes Spalte muß den Datentyp aus der Spalte Eltern entsprechen.

Wenn das Problem der Reihenfolge der Erstellung der Tabellen (die diesen Fehler verursachen können), führen Sie einfach set foreign_key_checks=0 so können Sie die Tabellen in beliebiger Reihenfolge erstellen, anstatt die Eltern alle Tabellen VOR die untergeordneten Tabellen zu erstellen, die .

Schließlich, stellen Sie sicher, dass die Codierung für alle Tabellen identisch ist.

EDIT: In Ihrem Fall sollten Sie geben uns auch die Struktur der iwd_storelocator_store Tabelle

Jetzt, wo wir Ihre iwd_storelocator_store Tisch haben, denke ich, dass Sie einen Index für store_id Spalte erstellen sollte, da es nicht die primäre ist Schlüssel der Tabelle

Verwandte Themen