如何创建也是MySQL主键的外键?

时间:2011-04-07 01:50:37

标签: mysql inheritance foreign-keys primary-key

这应该是一个相当简单的问题,但我无法找到一个简单的答案。如何创建一个也是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);
);

我在这里缺少什么?

提前致谢。

1 个答案:

答案 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,它支持外国参考。