这是决赛桌,但仍然是错误的:(
CREATE TABLE messages (
message_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INTEGER UNSIGNED NOT NULL,
forum_id TINYINT UNSIGNED NOT NULL,
user_id MEDIUMINT UNSIGNED NOT NULL,
subject VARCHAR(100) NOT NULL,
body LONGTEXT NOT NULL,
date_entered TIMESTAMP NOT NULL,
PRIMARY KEY (message_id),
FOREIGN KEY forum_id REFERENCES forums,
FOREIGN KEY parent_id REFERENCES messages,
FOREIGN KEY user_id REFERENCES users
);
现在的错误是我无法将parent_id设置为FOREIGN KEY(这是因为如果有人回复帖子,则此帖子被设置为新回复的parent_id)。
由于
答案 0 :(得分:3)
CREATE TABLE messages
(
message_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INTEGER UNIQUE NOT NULL,
forum_id TINYINT UNSIGNED NOT NULL,
user_id MEDIUMINT UNIQUE NOT NULL,
subject VARCHAR(100) NOT NULL,
body LONGTEXT NOT NULL,
date_entered TIMESTAMP NOT NULL,
PRIMARY KEY (message_id)
);
主键已经是唯一索引。并将类型定义保持在一起:
INTEGER UNIQUE UNSIGNED
不是关键字的正确顺序。
near
之后的MySQL错误消息中找到查询中有问题的部分。