Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi est-il encore possible d'insérer une clé étrangère qui n'existe pas ?

Vous devez définir explicitement la clé étrangère sous les définitions de colonne.

Vous devez également rendre product_id non signé puisque la clé parent n'est pas signée :

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;