これはかなり簡単な質問ですが、簡単な答えを見つけることができません。 MySQLの主キーでもある外部キーをどのように作成しますか?これが私の現在の試みです:
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);
);
ここで何が欠けていますか?
前もって感謝します。
各外部テーブルにFOREIGN KEY (sale_id) REFERENCES Sale(sale_id)
を追加します。
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;
データベースが外部参照をサポートするInnoDB
であることを確認してください。