0

我正在尝试在phpmyadmin中创建两个表:Users和Keys,架构如下:

用户

id int auto_incerement primary key

name varchar(50) not null

user_id int

keys varchar(50) not null

现在我正在运行以下查询以使user_idin引用inKeys的外键idUsers

ALTER TABLE Keys
FOREIGN KEY(user_id) REFERENCES Users(id)
ON UPDATE CASCADE
ON DELETE CASCADE

但执行后,我收到以下错误:

#1064 - 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 'Keys FOREIGN KEY(user_id) REFERENCES Users(id) ON UPDATE CASCADE ON DELETE CA' at line 1

谁能告诉我我做错了什么?

提前致谢。

4

3 回答 3

3

Keys保留字,必须用反引号括起来:

ALTER TABLE `Keys`
ADD FOREIGN KEY (user_id) REFERENCES `Users` (`id`)
ON UPDATE CASCADE
ON DELETE CASCADE

最好将所有与系统相关的单词用反引号括起来。

于 2013-10-08T14:13:35.573 回答
2

KEYS是保留关键字。另见:http ://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

您需要将它们包装在反引号中:

ALTER TABLE `Keys`
...
于 2013-10-08T14:13:50.377 回答
2

您需要用反勾号将键括起来。

ALTER TABLE `Keys`
于 2013-10-08T14:18:43.307 回答