我的数据库中有许多表,其中一个名为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表执行任何操作(例如select、insert)。
这是怎么回事?
发布于 2017-08-25 09:46:21
使用引号创建表(我认为组是一个保留字)
试一试
DESCRIBE `group`;发布于 2017-08-25 09:50:29
组是MySql中的保留关键字。您需要在describe语句中使用backticks。
请尝试以下命令:
描述
group;
请避免对表名和列名使用保留关键字。您可以在表名中添加前缀,比如tbl_group。
https://stackoverflow.com/questions/45878588
复制相似问题