无法描述表,ERROR 1064(42000):您的SQL语法中有错误

时间:2017-08-25 09:38:39

标签: mysql database relational-database

我有许多表的数据库,其中一个名为group的代码是由代码创建的:

CREATE TABLE IF NOT EXISTS `sc`.`group` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NOT NULL,
  `description` TEXT NULL,
  `group_type_id` INT NOT NULL,
  PRIMARY KEY (`id`),
  CONSTRAINT `fk_group_group_type1`
    FOREIGN KEY (`group_type_id`)
    REFERENCES `sc`.`group_type` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE INDEX `fk_group_group_type1_idx` ON `sc`.`group` (`group_type_id` ASC);

当我使用命令显示表时,我得到了:

+-------------------------------------+
| event_type                          |
| function                            |
| group                               |
| group_admin                         |
...
...
+-------------------------------------+

如果我例如写:describe function;,则mysql返回:

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(45) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

但如果我写describe group;,我会收到错误: ERROR 1064 (42000): 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 'group' at line 1

我无法在group表格上执行任何操作(例如,选择,插入)。

它出了什么问题?

2 个答案:

答案 0 :(得分:4)

使用引号创建表(我认为因为group是保留字)

尝试

DESCRIBE `group`;

答案 1 :(得分:0)

Group是MySql中的保留关键字。您需要在describe语句中使用反引号。

请尝试以下命令:

  

描述`group`;

请避免对表名和列名使用保留关键字。您可以为表名添加前缀,如tbl_group。