sql >> Databáze >  >> RDS >> Mysql

Cizí klíč MySQL, nelze vytvořit tabulku (errno:150)

Nepopisná chyba 150 obvykle souvisí s neshodami datového typu nebo délky cizího klíče nebo s chybějícím indexem ve sloupci nadřazené tabulky.

Tento vzhled je věcí rozlišení malých a velkých písmen v názvu tabulky Bill_Header (mělo by být BILL_HEADER ).
Z dokumentů MySQL dále rozlišování malých a velkých písmen v identifikátoru:

Opravte pouzdro a mělo by to fungovat:

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

Protože váš kód fungoval tak, jak je na SQLFiddle.com (http://sqlfiddle.com/#!2/ 08d1e ) základní platforma tam nesmí rozlišovat malá a velká písmena.



  1. Nejlepší způsob, jak ukládat značky pro rychlost v obrovské tabulce

  2. Neznámá chyba sloupce v úplné syntaxi spojení

  3. Jak odstranit databázi v cPanel

  4. TNS-12505:TNS:listener aktuálně nezná SID uvedené v deskriptoru připojení