Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Chave estrangeira do MySQL, não é possível criar tabela (errno:150)


O erro não descritivo 150 geralmente está relacionado ao tipo de dados de chave estrangeira ou incompatibilidades de comprimento ou a um índice ausente na coluna da tabela pai.

Isso parece ser uma questão de distinção entre maiúsculas e minúsculas no nome da tabela Bill_Header (deve ser BILL_HEADER ).
Dos documentos do MySQL em distinção entre maiúsculas e minúsculas do identificador:

Corrija o caso e deve 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));

Como seu código funcionou como está em SQLFiddle.com (http://sqlfiddle.com/#!2/ 08d1e ) a plataforma subjacente não deve diferenciar maiúsculas de minúsculas.