2017-04-22 4 views
0
  1. Ich versuche, zwei Tische 'Zimmer' zu schaffen und 'Hat'
  2. ROOM enthält PRIMARY KEY 'Typ'
  3. Hat FOREIGN KEY `Zimmer-type‘ enthält < - --here ist das Problem

meine sQL-Code 28 nicht LinieMySQL-Tabelle Fremdschlüssel Syntax erstellen

akzeptieren
FOREIGN KEY(`room-type`) REFERENCES ROOM(type) 

enter image description here

enter image description here

Ich bin völlig verloren, warum dies nicht funktionieren wird. Es scheint einfach genug zu sein. Jede Hilfe würde mir sehr gefallen. Ich bin absolut ratlos.

Antwort

0

DOH! ENUM! = VARCHAR (50) ..lol habe es gesehen, als ich den kleineren Codeabschnitt

0

gebucht habe Fremdschlüssel können nur auf eine Spalte mit exakt demselben Datentyp verweisen.

Ihre Spalte für den Raumtyp ist varchar (50) Die Typspalte, auf die sie verweist, ist ENUM, die intern wie ein int gespeichert wird.

Ausnahmen:

A VARCHAR (50) eine Reihe von einer anderen Länge, wie VARCHAR (100) oder VARCHAR (25) oder andere verweisen. Unterschiede im Zeichensatz würden jedoch als unterschiedliche Datentypen zählen.

Ganzzahl "Größe" ist bedeutungslos, daher kann INT (11) auf INT (18) verweisen. Beide sind 32-Bit-Ganzzahlen unabhängig von der Größe Argument. Aber ein INT kann nicht auf einen INT UNSIGNED oder einen BIGINT oder andere verweisen.

Verwandte Themen