Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Klucz obcy MySQL, nie można utworzyć tabeli (errno:150)

Nieopisowy błąd 150 jest zwykle związany z niezgodnością typu danych lub długości klucza obcego lub brakiem indeksu w kolumnie tabeli nadrzędnej.

Wygląda na to, że jest to kwestia rozróżniania wielkości liter w nazwie tabeli Bill_Header (powinien być BILL_HEADER ).
Z dokumentacji MySQL na rozróżnianie wielkości liter w identyfikatorze:

Napraw obudowę i powinno działać:

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

Ponieważ Twój kod działał tak, jak na SQLFiddle.com (http://sqlfiddle.com/#!2/ 08d1e ) na platformie bazowej nie może być rozróżniana wielkość liter.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_real_escape_string i problem z podwójnymi cudzysłowami

  2. Łącznik MySQL c++ nie zawiera libmysql.lib

  3. MYSQL INNER JOIN z możliwymi pustymi polami

  4. Zapowiedź ClusterControl 1.7.2:ulepszona kopia zapasowa PostgreSQL i wsparcie dla TimescaleDB i MySQL 8.0

  5. Jaka jest różnica między typami ciągów VARCHAR(255) i TINYTEXT w MySQL?