sql >> Base de Datos >  >> RDS >> Mysql

MySQL Foreign Key, no se puede crear la tabla (errno:150)

El error no descriptivo 150 generalmente está relacionado con el tipo de datos de la clave externa o las discrepancias de longitud, o con la falta de un índice en la columna de la tabla principal.

Esto parece ser una cuestión de distinción entre mayúsculas y minúsculas en el nombre de la tabla Bill_Header (debe ser BILL_HEADER ).
De los documentos de MySQL en distinción entre mayúsculas y minúsculas del identificador:

Arregla el caso y debería funcionar:

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

Dado que su código funcionó tal como está en SQLFiddle.com (http://sqlfiddle.com/#!2/ 08d1e ) la plataforma subyacente no debe distinguir entre mayúsculas y minúsculas.