我从 MySQL 收到一个错误,这是我见过的最无用的错误消息:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL,
PRIMARY KEY (userID, tweetID),
FOREIGN KEY (userID) REFERENCES User(' at line 4
太好了,检查手册...> _ _>
这是 SQL 源代码;我相信任何熟悉 SQL 的人都会非常简单,但我是新手。对我来说,一切看起来都很好。
我真的很想有一个比“我的错误是什么”更完善的问题,但是错误信息如此模糊,而且我的经验如此之少,我几乎迷失了方向。
CREATE TABLE User (
username VARCHAR(20) NOT NULL,
userID INTEGER NOT NULL,
fullName VARCHAR(100),
passwordHash VARCHAR(256) NOT NULL,
email VARCHAR(256) NOT NULL,
imageURL VARCHAR(200),
facebookURL VARCHAR(200),
tagline VARCHAR(140),
memberSince TIMESTAMP NOT NULL,
PRIMARY KEY (userID)
);
CREATE TABLE Tweet (
tweetID INTEGER NOT NULL,
userID INTEGER NOT NULL,
content VARCHAR(140) NOT NULL,
TIMESTAMP NOT NULL,
PRIMARY KEY (tweetID),
FOREIGN KEY (userID) REFERENCES User(userID)
);
CREATE TABLE HashTag (
tweetID INTEGER NOT NULL,
content VARCHAR(140) NOT NULL,
PRIMARY KEY (content),
FOREIGN KEY (tweetID) REFERENCES Tweet(tweetID)
);
CREATE TABLE Follows (
follower INTEGER NOT NULL,
followee INTEGER NOT NULL,
PRIMARY KEY (follower, followee),
FOREIGN KEY (follower) REFERENCES User(userID),
FOREIGN KEY (followee) REFERENCES User(userID)
);
CREATE TABLE Retweets (
tweetID INTEGER NOT NULL,
userID INTEGER NOT NULL,
TIMESTAMP NOT NULL,
PRIMARY KEY (userID, tweetID),
FOREIGN KEY (userID) REFERENCES User(userID),
FOREIGN KEY (tweetID) REFERENCES Tweet(tweetID)
);
CREATE TABLE Mentions (
tweetID INTEGER NOT NULL,
userID INTEGER NOT NULL,
PRIMARY KEY (tweetID, userID),
FOREIGN KEY (tweetID) REFERENCES Tweet(tweetID),
FOREIGN KEY (userID) REFERENCES User(userID)
);
CREATE TABLE Favorites (
tweetID INTEGER NOT NULL,
userID INTEGER NOT NULL,
PRIMARY KEY (tweetID, userID),
FOREIGN KEY (tweetID) REFERENCES Tweet(tweetID),
FOREIGN KEY (userID) REFERENCES User(userID)
);
CREATE TABLE CanSee (
tweetID INTEGER NOT NULL,
userID INTEGER NOT NULL,
PRIMARY KEY (tweetID, userID),
FOREIGN KEY (tweetID) REFERENCES Tweet(tweetID),
FOREIGN KEY (userID) REFERENCES User(userID)
);
CREATE TABLE Message (
messageID INTEGER NOT NULL,
senderID INTEGER NOT NULL,
receiverID INTEGER NOT NULL,
content VARCHAR(140) NOT NULL,
TIMESTAMP NOT NULL,
PRIMARY KEY (messageID),
FOREIGN KEY (senderID) REFERENCES User(userID),
FOREIGN KEY (receiverID) REFERENCES User(userID)
);