我有一个看起来像这样的表:
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 | |
我正在尝试创建一个这样的新表:
create table jobs (id int, FOREIGN KEY (user_id) REFERENCES Users(user_id)) ENGINE=INNODB;
但是我收到了这个错误:
错误1072(42000):表中不存在键列’user_id’
我确信我遗漏了一些非常基本的东西.
解决方法:
试试这个:
create table jobs (
id int,
user_id int,
FOREIGN KEY (user_id) REFERENCES Users(user_id)
) ENGINE=INNODB;
外键约束中的第一个user_id指的是定义约束的表,第二个指的是指向它的表.
因此,您还需要在作业表中使用字段user_id.
标签:mysql,sql,foreign-keys,primary-key
来源: https://codeday.me/bug/20190613/1232714.html