ERROR 1064(42000)MySQL主要参考书目

时间:2015-10-04 13:56:33

标签: mysql reference key

我之前从未使用过MySQL,但这次我没有选择。我有一个我不明白的错误。我尝试创建一个表:

CREATE TABLE proprietaire(
    num_cpt INT REFERENCES compte(num_cpt) PRIMARY KEY,
    num_client INT REFERENCES client(num_client),
    num_commercant INT REFERENCES commercant(num_commercant)
);

我看不出自己的错误。你能帮帮我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

在MySQL中,为了强制执行外键引用,您不能将references作为修饰符放在列上。你需要一个单独的约束:

CREATE TABLE proprietaire (
    num_cpt INT  PRIMARY KEY,
    num_client INT,
    num_commercant INT,
    CONSTRAINT fk_num_cpt FOREIGN KEY REFERENCES compte(num_cpt),
    CONSTRAINT fk_num_client FOREIGN KEY REFERENCES client(num_client),
    CONSTRAINT fk_num_commercant FOREIGN KEY REFERENCES commercant(num_commercant)
);

但是,您的具体问题是REFERENCES约束之前的PRIMARY KEY

作为备注:在大多数英语数据库中,您对num的使用将为idnum听起来像是一个计数或"数量为"某事,而id是标识符的缩写。