我试图使 Post 表中的“in_reply_to”字段成为可空外键,该外键引用同一表上的 id 字段。基本上,如果此字段为空,则该帖子不是对另一个帖子的回复——如果它不为空,那么该帖子是对具有匹配 id 的帖子的回复,如果这有意义的话。但是当我通过 mysql 运行我的文件时,我收到以下错误。
ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 '(160) 、 FOREIGN KEY (userID) REFERENCES users(userID)、 FOREIGN KEY (in_reply_' 在第 6 行查询 OK,0 行受影响 (0.36 秒) 附近使用正确的语法)
所以它说我写的命令有问题,但我无法确定我做错了什么。
这是sql文件的内容
CREATE DATABASE siteData CHARACTER SET utf8 COLLATE utf8_general_ci;
USE siteData;
CREATE TABLE users (
userID INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(40),
email VARCHAR(40),
password VARCHAR(125)
);
CREATE TABLE post (
postID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userID INT,
post_date TIMESTAMP(6),
in_reply_to INT NOT NULL,
postContent(160),
FOREIGN KEY (userID) REFERENCES users(userID),
FOREIGN KEY (in_reply_to) REFERENCES post(postID)
);
CREATE TABLE follow (
userID INT,
followerID INT,
PRIMARY KEY (userID,followerID),
FOREIGN KEY (userID)
REFERENCES users(userID),
FOREIGN KEY (followerID)
REFERENCES users(userID)
);
因此,如果您对如何使其引用帖子的 id 有任何指示,我将不胜感激。