这个 MySQL 查询中的索引定义有什么问题?
CREATE TABLE `pastebin` (
`pid` int(11) NOT NULL auto_increment,
`poster` varchar(16) default NULL,
`posted` datetime default NULL,
`code` text,
`parent_pid` int(11) default '0',
`format` varchar(16) default NULL,
`codefmt` mediumtext,
`codecss` text,
`domain` varchar(255) default '',
`expires` DATETIME,
`expiry_flag` ENUM('d','m', 'f') NOT NULL DEFAULT 'm',
PRIMARY KEY (`pid`),
KEY `domain` (`domain`),
KEY `parent_pid`,
KEY `expires`
);
创建数据库并将 SQL 查询复制粘贴到 PHPMyAdmin 后,出现以下错误:
#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 '
KEY `expires`
)' at line 16
CREATE TABLE `pastebin` (
`pid` int(11) NOT NULL auto_increment,
`poster` varchar(16) default NULL,
`posted` datetime default NULL,
`code` text,
`parent_pid` int(11) default '0',
`format` varchar(16) default NULL,
`codefmt` mediumtext,
`codecss` text,
`domain` varchar(255) default '',
`expires` DATETIME,
`expiry_flag` ENUM('d','m', 'f') NOT NULL DEFAULT 'm',
PRIMARY KEY (`pid`),
KEY `domain` (`domain`),
KEY `parent_pid`,
KEY `expires`
);
After creating a database and copy-pasting the SQL query into PHPMyAdmin I get the following error:
#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 '
KEY `expires`
)' at line 16
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须在索引名称后面的括号中指定要建立索引的列。
在你的定义的底部:
将变成:
You have to specify the columns that you want to have indexed in parenthesis after the name of the index.
At the bottom of your definition:
Would become:
索引需要名称,因为它们是数据库中的实体。
Indexes need names, as they are entities in the DB.