无法创建外键(错误1072)

use*_*208 5 mysql sql foreign-keys primary-key

我有一张桌子,看起来像这样:

mysql>  SHOW COLUMNS FROM Users;
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| user_id    | int(10)      | NO   | PRI | NULL    | auto_increment |
| username   | varchar(50)  | YES  |     | NULL    |                |
| password   | varchar(255) | YES  |     | NULL    |                |
| email      | varchar(255) | YES  |     | NULL    |                |
| phone      | varchar(255) | YES  |     | NULL    |                |
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个像这样的新表:

create table jobs (id int,  FOREIGN KEY (user_id) REFERENCES Users(user_id)) ENGINE=INNODB;
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

ERROR 1072 (42000): Key column 'user_id' doesn't exist in table

我确信我缺少一些非常基本的东西。

Fab*_*ney 5

尝试这个:

create table jobs (
    id int,  
    user_id int,
    FOREIGN KEY (user_id) REFERENCES Users(user_id)
) ENGINE=INNODB;
Run Code Online (Sandbox Code Playgroud)

第一个user_id外键约束是指已定义约束的表,第二个是它所指向的表。因此,您也需要user_id在Jobs表中添加一个字段。