SQL MySQL Fehler #1050 bei Alter Table und Foreign Key's

_CH_K_1991_

Lieutenant
Registriert
Nov. 2008
Beiträge
772
Guten Abend zusammen

Ich möchte mit folgendem MySQL Code von table1 auf table2 referenzieren (Tabellen Struktur siehe Anhang):
Code:
ALTER TABLE `secanis-File`
ADD FOREIGN KEY (`ID_Order`) REFERENCES `secanis`.`secanis-Ordertyp`(`ID_Order`)
​ON DELETE RESTRICT ON UPDATE CASCADE;

table1.jpgtable2.jpg

Jeweils die Attribute mit aktiviertem AI sind auch PrimaryKey's. Alle anderen mit ID_ Prefix sind Fremdschlüssel.

dabei erhalte ich folgenden Fehler:
Code:
#1050 - Table './secanis/secanis@002dFile' already exists

Ich bekomme den Fehler bei ein paar Tabellen, aber nicht bei allen!
Alle Tabellen sind auf INNODB gestellt und haben die Kollation utf8_general_ci eingestellt.

Könnt ihr mir sagen, wieso einige Alter Table's den oben genannten Fehler ausgeben, obwohl ich ja gar keine Tabelle hinzufügen will?!?
Im Internet habe ich bisher nur mögliche Fehler zu verschiedenen Engines oder Kollationen gefunden.

Danke vielmal
​Gruss
 
Kanns sein, dass hinter `secanis-Ordertyp` ein Leerzeichen fehlt?
Ansonsten: Sieht irgendwie eher nach einem Fehler im Dateisystem aus. Denk dran: Datenbanken sind Ordner, Tabellen sind Dateien. Schau mal in /var/lib/ nach
 
Den Befehl kannst du sehr leicht überprüfen, indem du den Foreign Key über die Beziehungsübersicht setzt. Da siehst du am Ende nach dem Speichern den ausgeführten Befehl ;-)
 
Hallo zusammen

Danke für die Antworten.

@DaVian
Ich habe ursprünglich auch die Befehle in der Beziehungsübersicht gesetzt, dort dann aber eine großartige Fehlermeldung namens "Fehler" bekommen. Dann habe ich den dort angezeigten SQL Code kopiert und per SQL Direkteingabe ausgeführt. Dieser führte dann zum Fehler im 1.Post.

@Daaron
Dank deinem Hinweis von Ordnern und Files (wusste ich übrigens so nicht) kam mir irgendwie der Gedanke (weiss nicht wieso ;-)) alle Tabellen einfach mal zu Exportieren, dann die Datenbank zu löschen, neu zu erstellen und die Tabellen wieder zu importieren.
Als Ich dann folgenden Befehl Zeile für Zeile durchführte (und auch für andere Tabellen) klappte es plötzlich mit dem erstellen der Fremdschlüssel, obwohl doch eigentlich das der selbe Code ist, welcher MySQL selber generiert...

Code:
ALTER TABLE `secanis_File`
  ADD CONSTRAINT `secanis_File_ibfk_1` FOREIGN KEY (`ID_Customer`) REFERENCES `secanis_Customer` (`ID_Customer`) ON UPDATE CASCADE;
  ADD CONSTRAINT `secanis_File_ibfk_2` FOREIGN KEY (`ID_Typ`) REFERENCES `secanis_Typ` (`ID_Typ`) ON UPDATE CASCADE;
  ADD CONSTRAINT `secanis_File_ibfk_3` FOREIGN KEY (`ID_Order`) REFERENCES `secanis_Ordertyp` (`ID_Order`) ON UPDATE CASCADE;

Komischerweise bekomme ich aber ebenfalls einen Fehler wenn ich das ganze SQL Script der Tabellen auf einen Rutsch (also z.B. den geposteten Befehl zusammen nach den Creates) ausführe - also nicht Zeile für Zeile

Da es jetzt funktioniert hat, ist ja eigentlich alles i.O.
Aber es interessiert mich eigentlich doch noch so warum denn diese Fehler aufgetreten sind.
Ergänzung ()

kleine Ergänzung:
Der Import auf einem anderen System (genau der gleiche MySQL Server von der Konfig her -> da in virtuellen Maschienen) klappt ohne Probleme!
 
Klingt irgendwie nach einem physischen Defekt beim Host.... Mach da auf jeden Fall mal n Festplatte-Check, um sicher zu gehen.
 

Ähnliche Themen

Zurück
Oben