Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum ist es trotzdem möglich, einen Fremdschlüssel einzufügen, der nicht existiert?

Sie sollten den Fremdschlüssel explizit unter den Spaltendefinitionen definieren.

Sie sollten product_id auch unsigniert machen, da der übergeordnete Schlüssel unsigniert ist:

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;