我正在编写一个脚本,该脚本创建一个链接到同一数据库中另外两个表的表。我决定使用两个外键来链接到另外两个表。当我运行脚本时,我收到一个错误(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)
)
答案 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列,哪个不应该是另一个的外键