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

Dlaczego nadal można wstawić klucz obcy, który nie istnieje?

Powinieneś wyraźnie zdefiniować klucz obcy poniżej definicji kolumn.

Powinieneś również ustawić identyfikator produktu jako unsigned, ponieważ klucz nadrzędny jest niepodpisany:

CREATE TABLE orders (
  id integer PRIMARY KEY auto_increment,
  product_id integer unsigned,
  quantity integer,
  INDEX product_id_idx (product_id),
  CONSTRAINT FK_ORDER_TO_PRODUCT FOREIGN KEY (product_id) REFERENCES products (id)
 ) engine=innodb;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL / MariaDB:jak znaleźć luki w danych czasowych?

  2. Wstawianie warunkowe na podstawie LAST_INSERT_ID

  3. Pobierz dane z mysql i wyświetl w formie tabeli tekstowej ascii w przeglądarce

  4. MySQL — znajdowanie bliskich odpowiedników

  5. Czy można użyć wyniku funkcji SQL jako pola w Doctrine?