Cela devrait être une question assez simple, mais je ne trouve pas de réponse facile. Comment créez-vous une clé étrangère qui est également une clé primaire dans MySQL? Voici ma tentative actuelle:
CREATE TABLE Sale(
sale_id CHAR(40),
PRIMARY KEY(sale_id),
discount DOUBLE,
type VARCHAR(255),
price DOUBLE,
);
CREATE TABLE Normal_Sale(
sale_id CHAR(40),
PRIMARY KEY(sale_id);
);
CREATE TABLE Special_Sale(
sale_id CHAR(40),
PRIMARY KEY(sale_id);
);
Qu'est-ce que j'oublie ici?
Merci d'avance.
Ajoutez FOREIGN KEY (sale_id) REFERENCES Sale(sale_id)
à chaque table étrangère:
CREATE TABLE Sale(
sale_id CHAR(40),
PRIMARY KEY(sale_id),
discount DOUBLE,
type VARCHAR(255),
price DOUBLE
) ENGINE=INNODB;
CREATE TABLE Normal_Sale(
sale_id CHAR(40),
PRIMARY KEY(sale_id),
FOREIGN KEY (sale_id) REFERENCES Sale(sale_id)
) ENGINE=INNODB;
CREATE TABLE Special_Sale(
sale_id CHAR(40),
PRIMARY KEY(sale_id),
FOREIGN KEY (sale_id) REFERENCES Sale(sale_id)
) ENGINE=INNODB;
Assurez-vous simplement que votre base de données est InnoDB
qui prend en charge les références étrangères.