Frage

Ich habe doppelt geprüft mein Schema und seine korrekte ... infact Lehre auch sie einmal gebaut .. und seine jetzt beunruhigt mich mit einigen FK Beziehungen ... Ich habe auch für die Datentypen geprüft. Alle sind int (4) oder int (2)

2 Qs hier: 1. gibt es eine Obergrenze für die Anzahl der Beziehungen (Abhängigkeiten / FKs) kann eine Tabelle haben? Ich habe bis zu 7 FKs in einem Tabellen 2. gibt es eine Obergrenze für die Anzahl der Tabellen, die eine übergeordnete Tabelle beziehen (PK)? Ich habe bis zu 30 Felder in 20 Tabellen zu einer einzigen ID-Spalte in Optionen Tabelle beziehen 3. Ist die Definition für Cascase Verhalten erforderlich? Ich habe es nicht verwendet!

Ist es besser zu leben, ohne Beziehungen in diesem Fall?

Der Fehler ist:

 SQLSTATE[HY000]: General error: 1005 Can't create table 'sokidb.#sql-268_1d' (errno: 121). Failing Query: "ALTER TABLE Acc_Gl_Accounts ADD CONSTRAINT Acc_Gl_Accounts_society_id_Soc_Societies_id FOREIGN KEY (society_id) REFERENCES Soc_Societies(id)". Failing Query: ALTER TABLE Acc_Gl_Accounts ADD CONSTRAINT Acc_Gl_Accounts_society_id_Soc_Societies_id FOREIGN KEY (society_id) REFERENCES Soc_Societies(id)  

Ich feuerte auch die Abfragen in MySQL direkt, es ergibt sich der gleiche Fehler.

War es hilfreich?

Lösung

Menschen, in den letzten paar Tagen habe ich erkannt, dass es wahrscheinlich kein Problem mit Lehre bekannt ist.

Mein Fehler war, dass ich eine Option für meinen Schlüssel in einer Tabelle definiert hatte ‚unsigned: true‘ und nicht das gleiche für die FK-Definition wiederholt :( Alle meine Schuld, aber die Lösung ist Überprüfen Sie Ihre Datentypen.

Und der beste Weg zum Debuggen von MySQL Fehlern ist die SQL-Skript erzeugt zu überprüfen. Sie können ganz einfach Unterschiede in den Definitionen der Spalten erkennen.

Danke John, für Ihr Interesse.

Andere Tipps

Sie verwenden wahrscheinlich InnoDB-Tabellen, die standardmäßig für die modernen MySQL-Versionen und einen foreignkey Constraint-Fehler auftreten. hier lesen für eine vollständige Liste von requerments.

  

Entsprechende Spalten im Fremd   Schlüssel und die referenzierte Schlüssel müssen   ähnliche interne Datentypen innerhalb   InnoDB, damit sie verglichen werden   ohne eine Typumwandlung. Die Größe   und Zeichen der Integer-Typen muss das sein   gleich. Die Länge der String-Typen Notwendigkeit   nicht gleich sein. für nichtbinärer   (Rolle) string Spalten, die   Zeichensatz und Sortierung muss sein   das gleiche.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top