3

当我尝试导入数据库时​​出现此错误

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 4 行的 '('id') ) TYPE=MyISAM AUTO_INCREMENT=6' 附近使用正确的语法

 DROP TABLE IF EXISTS `categories`;
 CREATE TABLE `categories` (
 `id` int(5) NOT NULL auto_increment,
  `category` varchar(50) NOT NULL default '',
  PRIMARY KEY  ('id')
  ) TYPE=MyISAM AUTO_INCREMENT=6 ;
4

4 回答 4

3

你在'这里使用

PRIMARY KEY  ('id')

id在这种情况下是一个字符串,而不是列名。改用反引号。

PRIMARY KEY  (`id`)
于 2013-05-17T11:06:29.743 回答
2

您的代码有两个问题,删除主键声明中的单引号id。您可以使用反引号或什么都不使用。

并将其更改Type=MyISAM为:

ENGINE=MyISAM

来自MySQL 文档

为了向后兼容,支持旧术语 TYPE 作为 ENGINE 的同义词,但 ENGINE 是首选术语,不推荐使用 TYPE。

所以脚本将是:

DROP TABLE IF EXISTS `categories`;
 CREATE TABLE `categories` (
 `id` int(5) NOT NULL auto_increment,
  `category` varchar(50) NOT NULL default '',
  PRIMARY KEY  (id)
  ) ENGINE=MyISAM AUTO_INCREMENT=6 ;

请参阅带有演示的 SQL Fiddle

于 2013-05-17T11:06:27.620 回答
2

尝试这个:

DROP TABLE IF EXISTS `categories`;
 CREATE TABLE `categories` (
 `id` int(5) NOT NULL auto_increment,
  `category` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
  ) ENGINE=MYISAM AUTO_INCREMENT=6

问题是PRIMARY KEY ('id')应该使用反引号插入引号

于 2013-05-17T11:09:49.400 回答
-2

1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“FROM disc_disc WHERE disc_id=NULL”附近使用正确的语法 SQL=SELECT disc_id, disc_name, FROM disc_disc WHERE disc_id=NULL

    // zjistit jmeno diskuse
$disc_name = "";
$sql = sprintf("SELECT disc_id, disc_name, " .
    "FROM disc_disc " .
    "WHERE disc_id=%s",
quote_smart($disc_id));
$db->setQuery($sql);
$rec = $db->loadObjectList();

if ($db->getErrorNum()) {
    JError::raiseWarning( 500, $db->stderr() );
}
于 2016-02-09T20:50:21.783 回答