复合主键之一为外键Mysql

时间:2013-10-04 15:01:57

标签: mysql foreign-keys composite-primary-key

我有两张桌子。

CREATE TABLE One(
    Oneid int,
    Twoid int,
    data char(20),
    PRIMARY KEY(Oneid,Twoid) )

表一是Oneid和Twoid作为主键。

CREATE TABLE Two(
    Twoid int,
    data char(20),
    PRIMARY KEY(Twoid) )

我想要One.Twoid是表二的外键。 如何解决它。 非常感谢。

1 个答案:

答案 0 :(得分:3)

CREATE TABLE语句中添加约束:

CREATE TABLE Two(
    Twoid int,
    data char(20),
    PRIMARY KEY (Twoid));

CREATE TABLE One(
    Oneid int,
    Twoid int,
    data char(20),
    PRIMARY KEY (Oneid,Twoid),
    FOREIGN KEY (Twoid) REFERENCES Two(Twoid)); -- <== here

请参阅fiddle

如果您的表已经存在,请使用ALTER TABLE

ALTER TABLE One
ADD CONSTRAINT FK_Twoid FOREIGN KEY (Twoid) REFERENCES Two (Twoid);

请参阅fiddle