Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Fremdschlüssel, Tabelle kann nicht erstellt werden (Fehlernummer:150)

Der nicht beschreibende Fehler 150 bezieht sich normalerweise auf Fremdschlüssel-Datentyp- oder Längenkonflikte oder einen fehlenden Index in der Spalte der übergeordneten Tabelle.

Dies scheint eine Frage der Groß- und Kleinschreibung im Tabellennamen Bill_Header zu sein (sollte BILL_HEADER sein ).
Ab den MySQL-Dokumenten Identifikator-Groß-/Kleinschreibung:

Repariere den Fall und es sollte funktionieren:

CREATE TABLE TOS.BILL_ITEM
(Bill_No Char(10),
BSeq_No INTEGER,
Toy_Id Char(10),
OTime DateTime,
Quan INT,
DCondition Char(1),
PRIMARY KEY(Bill_No,BSeq_No),
FOREIGN KEY(Bill_No) REFERENCES TOS.BILL_HEADER(Bill_No),
# Here-----------------------------^^^^^^^^^^^^^^
FOREIGN KEY(Toy_Id) REFERENCES TOS.TOY(Toy_Id));

Da Ihr Code wie bei SQLFiddle.com (http://sqlfiddle.com/#!2/) funktioniert hat 08d1e ) der zugrunde liegenden Plattform darf nicht zwischen Groß- und Kleinschreibung unterschieden werden.