我在添加引用另一个表的外键字段时遇到问题。
首先我创建了用户表,如下所示:
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/