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.