Mysql “表中的外键约束格式不正确”;“问题”;

Mysql “表中的外键约束格式不正确”;“问题”;,mysql,sql,database-design,foreign-keys,create-table,Mysql,Sql,Database Design,Foreign Keys,Create Table,这是我创建的两个表,但在表问题中有一个错误: 我在网上搜索过,但找不到任何解决办法。你能在这方面帮助我吗 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 I

这是我创建的两个表,但在表
问题
中有一个错误:

我在网上搜索过,但找不到任何解决办法。你能在这方面帮助我吗

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;

您需要两个外键,而不是一个-并且需要在子表之前创建父表:

-- parent table
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;

-- child table
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) references users(id),  -- first FK
    foreign key (created_by)  references users(id)   -- second FK
) engine=innodb;

最有可能的情况是,您只需要先创建
用户
,然后再发布
问题
,这样就可以设置FK约束并引用现有表了……@marc_s,我也尝试过。。。但我仍然得到错误:第13行的错误1822(HY000):未能添加外键约束。引用表“Users”中缺少约束“Issues\u ibfk\u 1”的索引是否确实要创建复合外键??
用户中没有匹配的复合主键
。。。。或者您想为分配给
用户的
创建一个FK。id
和另一个由
创建的
的FK约束吗?再次分别分配给
用户。id
请看@GMB的答案——他一定已经读懂了我的心思,并把它写进了答案中;-)详细说明:为了在InnoDB中创建外键,需要以完全相同的顺序引用索引。您没有索引
(id,id)
,您只有一个索引
id
,因此需要使用两个单独的FK来引用它。看。