【发布时间】:2021-03-15 19:21:43
【问题描述】:
这是我创建的两个表,但在表issues 中出现错误:
我已经搜索了互联网,但无法找到任何解决方案。你能帮帮我吗?
CREATE TABLE Issues
(
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100),
description TEXT,
type VARCHAR(50),
priority VARCHAR(50),
status VARCHAR(50),
assigned_to INT,
created_by INT,
created DATETIME,
updated DATETIME,
FOREIGN KEY (assigned_to, created_by) REFERENCES Users(id, id)
) ENGINE=InnoDB;
CREATE TABLE Users
(
id INT AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30),
lastname VARCHAR(30),
password VARCHAR(30),
email VARCHAR(30),
date_joined DATETIME
) ENGINE=InnoDB;
【问题讨论】:
-
最有可能的是,您只需要先创建
Users- 在Issues之前 - 以便可以设置 FK 约束并引用 existing 表...。 -
@marc_s,我也试过了......但我仍然收到错误:第 13 行的错误 1822 (HY000):无法添加外键约束。引用表 'Users' 中的约束 'Issues_ibfk_1' 缺少索引
-
你真的要创建一个复合外键吗?
Users中没有匹配的复合主键 .... 或者您是否要为assigned_to到Users.id创建一个 FK 并为created_by创建另一个 FK 约束 - 再次到Users.id- 分别? -----> 看@GMB 的回答——他一定读懂了我的想法并把它变成了一个答案;-)
标签: mysql sql database-design foreign-keys create-table