mysql - 表中不存在键列

标签 mysql sql database foreign-keys

我在添加引用另一个表的外键字段时遇到问题。

首先我创建了用户表,如下所示:

CREATE TABLE users (
user_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
userName VARCHAR(256) NOT NULL,
userEmail VARCHAR (256) NOT NULL,
userPwd VARCHAR(256) NOT NULL,
);

然后我希望测验表有一个外键来引用第一个表中的 user_id

CREATE TABLE quizzes (
quizId INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
quizName VARCHAR(128) NOT NULL,
quizMax SMALLINT(6) NOT NULL,
FOREIGN KEY (user_id) REFERENCES users (user_id)
);

这会引发错误:“表中不存在键列“user_id”。

其他答案建议检查 DB 是否为 InnoDB,我确实这样做了,而且确实如此。

无法理解为什么它告诉我 user_id 不存在,而它显然存在于用户表中。

最佳答案

首先检查表user是否创建成功,因为最后一列多了一个','!

其次,您在 FOREIGN KEY(user_id) 中引用的列未在表 quizzes 中定义,您需要在 quizzes 中添加此列> 表。

关于mysql - 表中不存在键列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48040509/

相关文章:

sql - 获取添加参数后的SQL语句

php - Redis(键/值数据库)和关联数组之间的区别?

mysql - 从一个表中的字段中检索最高频率值并将其更新到另一个表中

php - 截断一些 id 而不删除其他值 MySQL

mysql - 调试慢速查询时遇到问题

Mysql自动给字段添加前缀

database - 如何在 Play Framework 中而不是在内存中使用持久性 H2 数据库

mysql - 如何在 MySQL 中将 ipv4 字符串转换为 varbinary?

sql - 如何将字符串与整数进行比较

php mysql 回显 |如何从提交表单继承颜色?