2013-10-04 111 views
0

我有兩個表。複合主鍵之一作爲外鍵Mysql

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是表二的外鍵。 如何解決它。 非常感謝。

回答

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

+0

非常感謝你,謝謝你的幫助。 – user2172296