Mysql SQL-多对多表不起作用

Mysql SQL-多对多表不起作用,mysql,sql,sql-server,Mysql,Sql,Sql Server,#1005-无法创建表'ass1 lol.management'(错误号:150)(详细信息… 当我尝试创建这个多对多表时,返回了上述错误 尝试在员工和主管之间创建多对多表,在创建主管和员工表时不会返回错误。但是当我去创建管理表时,我得到了上面的错误 这些是我的CREATETABLE语句 员工表 CREATE TABLE IF NOT EXISTS employee ( emp_id INT(4) NOT NULL, yr_ser INT(4), status VARC

#1005-无法创建表'ass1 lol.management'(错误号:150)(详细信息…

当我尝试创建这个多对多表时,返回了上述错误

尝试在员工和主管之间创建多对多表,在创建主管和员工表时不会返回错误。但是当我去创建管理表时,我得到了上面的错误

这些是我的CREATETABLE语句

员工表

CREATE TABLE IF NOT EXISTS employee (

    emp_id INT(4) NOT NULL,
    yr_ser INT(4),
    status VARCHAR(30),
    emp_name VARCHAR(30),
    emp_gen VARCHAR(1),
    PRIMARY KEY (emp_id)
);
监督表

CREATE TABLE IF NOT EXISTS supervisor (
    sup_id INT(4) NOT NULL,
    sup_name VARCHAR(30) NOT NULL,
    gen INT(4),
    dep_id INT(4),

    PRIMARY KEY (sup_id),
    INDEX (dep_id),

    FOREIGN KEY (dep_id)
        REFERENCES department(dep_id)
        ON UPDATE CASCADE ON DELETE RESTRICT    
);
但是当我去创建这个表时,我得到了错误

管理表

CREATE TABLE IF NOT EXISTS management (
    emp_id INT(4) NOT NULL,
    sup_id INT(4) NOT NULL,

    PRIMARY KEY (emp_id, sup_id),
    INDEX (emp_id),
    INDEX (sup_id),

    FOREIGN KEY (emp_id)
        REFERENCES employee(emp_id)
        ON UPDATE CASCADE ON DELETE RESTRICT,

    FOREIGN KEY (sup_id)
        REFERENCES supervisor(act_id)
        ON UPDATE CASCADE ON DELETE RESTRICT
);

非常感谢您的帮助。

您可以在多个表中引用
主管
表中的一个字段
act\u id
,但未定义此类字段。应改为
sup\u id

CREATE TABLE IF NOT EXISTS management (
emp_id INT(4) NOT NULL,
sup_id INT(4) NOT NULL,

PRIMARY KEY (emp_id, sup_id),
INDEX (emp_id),
INDEX (sup_id),

FOREIGN KEY (emp_id)
    REFERENCES employee(emp_id)
    ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (sup_id)
    REFERENCES supervisor(sup_id) -- Here
    ON UPDATE CASCADE ON DELETE RESTRICT
);

正如他们所说,魔鬼在于细节。或者换句话说,您应该包含完整的错误消息。