Mysql
 sql >> Database >  >> RDS >> Mysql

Chiave esterna MySQL, impossibile creare la tabella (errno:150)

L'errore non descrittivo 150 è in genere correlato al tipo di dati della chiave esterna o alla mancata corrispondenza della lunghezza o a un indice mancante nella colonna della tabella padre.

Questa sembra essere una questione di distinzione tra maiuscole e minuscole nel nome della tabella Bill_Header (dovrebbe essere BILL_HEADER ).
Dai documenti MySQL in poi identificatore di distinzione tra maiuscole e minuscole:

Risolvi il caso e dovrebbe funzionare:

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

Poiché il tuo codice ha funzionato come in SQLFiddle.com (http://sqlfiddle.com/#!2/ 08d1e ) la piattaforma sottostante non deve fare distinzione tra maiuscole e minuscole.