2015-10-04 116 views
0

我以前从未使用过MySQL,但这次我没有选择。我有一个错误,我不明白。我尝试创建一个表格:错误1064(42000)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

在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) 
); 

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

作为说明:在大多数英语数据库中,您使用num将是idnum听起来像是数字或“数字”的东西,而id是标识符的缩写。

+0

谢谢你,我的错误是REFERENCES在PRIMARY KEY之前,正如你所说的。 我知道,我在设计数据库时将其称为ID,但这次我必须遵循我老师的做法。 –