我有许多表的数据库,其中一个名为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
表格上执行任何操作(例如,选择,插入)。
它出了什么问题?
答案 0 :(得分:4)
使用引号创建表(我认为因为group是保留字)
尝试
DESCRIBE `group`;
答案 1 :(得分:0)
Group是MySql中的保留关键字。您需要在describe语句中使用反引号。
请尝试以下命令:
描述`group`;
请避免对表名和列名使用保留关键字。您可以为表名添加前缀,如tbl_group。