遵循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_'
我尝试了多次更改,但它一直给我同样的错误。代码直接来自本书。有任何想法吗?
答案 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