我之前从未使用过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)
);
我看不出自己的错误。你能帮帮我吗?
谢谢
答案 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
的使用将为id
。 num
听起来像是一个计数或"数量为"某事,而id
是标识符的缩写。