向MySQL添加表不断引发错误

时间:2015-09-03 03:30:03

标签: mysql

遵循Web开发教程。这是SQL代码

CREATE TABLE 'users_relationships' (
'users_relationship_id' INT(10) NOT NULL,
'from_user_id' INT(10) NOT NULL,
'to_user_id' INT(10) unsigned NOT NULL,
'users_relationship_type' VARCHAR(10) NOT NULL,
'users_relationship_timestamp' DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY ('users_relationship_id'),
INDEX 'from_user_id' ('from_user_id'),
INDEX 'to_user_id' ('to_user_id'),
INDEX 'from_user_id_to_user_id' ('from_user_id', 'to_user_id'),
INDEX 'from_user_id_to_user_id_users_relationship_type' ('from_user_id', 'to_user_id', 'users_relationship_type'));

每当我运行它时,我都会收到以下错误;

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在''users_relationships'附近使用正确的语法(     'users_relationship_id'INT(10)NOT NULL,     第1行'from_'

我尝试了多次更改,但它一直给我同样的错误。代码直接来自本书。有任何想法吗?

3 个答案:

答案 0 :(得分:1)

您不需要反引号或单引号。只是压在身上。但单引号是等待发生的彻头彻尾的语法错误。

CREATE TABLE users_relationships (
users_relationship_id INT(10) NOT NULL,
from_user_id INT(10) NOT NULL,
to_user_id INT(10) unsigned NOT NULL,
users_relationship_type VARCHAR(10) NOT NULL,
users_relationship_timestamp DATETIME not null,
PRIMARY KEY (users_relationship_id),
INDEX from_user_id(from_user_id),
INDEX to_user_id (to_user_id),
INDEX from_user_id_to_user_id (from_user_id, to_user_id),
INDEX from_user_id_to_user_id_users_relationship_type (from_user_id, to_user_id, users_relationship_type)
);

反推棒很可爱。但只有在名称会违反保留字的情况下才需要。虽然它们是由创建表转储的工具生成的,但为什么要打扰它们,除非你真的讨厌你的小小的粉红色。只是我的意见。

答案 1 :(得分:1)

如果你想使用MySQL引号,你需要使用`,否则MySQL会搞砸并认为有一些字符串被创建而不是表列(通常对于列名,你不要使用&# 39;,否则MySQL会认为字符串正用于数据选择)

urls2.txt

这是工作的SQLFiddle here

答案 2 :(得分:1)

首先你应该用反引号替换所有单引号。

CREATE TABLE `users_relationships` (
`users_relationship_id` INT(10) NOT NULL,
`from_user_id` INT(10) NOT NULL,
`to_user_id` INT(10) unsigned NOT NULL,
`users_relationship_type` VARCHAR(10) NOT NULL,
`users_relationship_timestamp` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`users_relationship_id`),
INDEX `from_user_id` (`from_user_id`),
INDEX `to_user_id` (`to_user_id`),
INDEX `from_user_id_to_user_id` (`from_user_id`, `to_user_id`),
INDEX `from_user_id_to_user_id_users_relationship_type` (`from_user_id`, `to_user_id`, `users_relationship_type`));

第二个你不能拥有DATETIME DEFAULT CURRENT_TIMESTAMP

DATETIME DEFAULT ''TIMESTAMP DEFAULT CURRENT_TIMESTAMP