这应该是一个相当简单的问题,但我无法找到一个简单的答案。如何创建一个也是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);
);
我在这里缺少什么?
提前致谢。
答案 0 :(得分:44)
将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
,它支持外国参考。