尝试运行脚本时,带有两个外键的表会出错

时间:2017-02-28 09:48:32

标签: mysql foreign-keys

我正在编写一个脚本,该脚本创建一个链接到同一数据库中另外两个表的表。我决定使用两个外键来链接到另外两个表。当我运行脚本时,我收到一个错误(1075),详细说明'只能有一个自动列,并且必须将其定义为键#39;我相信我已经正确地做了一切,而且我不知道自己哪里出错了。我正在使用MySQL。任何帮助将不胜感激。谢谢:))

代码

        CREATE TABLE IF NOT EXISTS entries(
        first_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
        second_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
        event_date DATE NOT NULL,
        FOREIGN KEY (first_id) REFERENCES table1(first_id),
        FOREIGN KEY (second_id) REFERENCES table2(second_id)
        )

1 个答案:

答案 0 :(得分:1)

1) 您正尝试在单个表中创建两个主键,这是不可能的,表中只能有一个auto_increment键

CREATE TABLE IF NOT EXISTS entries(
  

first_id INT UNSIGNED NOT NULL AUTO_INCREMENT,               second_id INT UNSIGNED NOT NULL AUTO_INCREMENT,

        event_date DATE NOT NULL,
        FOREIGN KEY (first_id) REFERENCES table1(first_id),
        FOREIGN KEY (second_id) REFERENCES table2(second_id)
        )

2)你试图将auto_incremented列作为另一个表的外键的第二件事

CREATE TABLE IF NOT EXISTS entries(
        first_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
        second_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
        event_date DATE NOT NULL,
  

FOREIGN KEY(first_id)REFERENCES table1(first_id),               FOREIGN KEY(second_id)REFERENCES table2(second_id)

        )

只制作一个auto_incremented列,哪个不应该是另一个的外键