【问题标题】:ERROR 1064 (42000) MySQL PRIMARY KEY REFERENCES错误 1064 (42000) MySQL 主键引用
【发布时间】:2015-10-04 13:56:32
【问题描述】:

我以前从未使用过 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)
);

我看不出我的错误。你能帮我解决这个问题吗?

谢谢

【问题讨论】:

    标签: mysql reference key


    【解决方案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 是标识符的缩写。

    【讨论】:

    • 谢谢,我的错误是 REFERENCES 如您所说,在 PRIMARY KEY 之前。我知道,我在设计数据库时称之为 ID,但这次我必须按照老师的做法。
    猜你喜欢
    • 2011-12-06
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    相关资源
    最近更新 更多