sql >> Database >  >> RDS >> Mysql

MySQL Foreign Key, kan geen tabel maken (errno:150)

De niet-beschrijvende fout 150 is meestal gerelateerd aan datatype- of lengte-mismatches van refererende sleutels, of een ontbrekende index in de kolom van de bovenliggende tabel.

Dit lijkt een kwestie van hoofdlettergevoeligheid in de tabelnaam Bill_Header (moet BILL_HEADER zijn ).
Vanaf de MySQL-documenten identifier hoofdlettergevoeligheid:

Fix de case en het zou moeten werken:

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));

Aangezien je code werkte zoals hij is op SQLFiddle.com (http://sqlfiddle.com/#!2/ 08d1e ) het onderliggende platform daar mag niet hoofdlettergevoelig zijn.



  1. Wat is de beste manier om een ​​getallentabel te maken en te vullen?

  2. base64-codering in MySQL

  3. Panda's schrijven dataframe naar ander postgresql-schema

  4. Een IP converteren naar een Long in MySQL