Mysql 无法描述表,错误1064(42000):SQL语法中有错误
我的数据库中有许多表,其中一个称为group的表是通过代码创建的:Mysql 无法描述表,错误1064(42000):SQL语法中有错误,mysql,database,relational-database,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_gro
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);
当我使用命令show tables时,我得到:
+-------------------------------------+
| event_type |
| function |
| group |
| group_admin |
...
...
+-------------------------------------+
例如,如果我写:描述函数代码>,mysql返回:
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(45) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
但如果我写描述组代码>我得到一个错误:
错误1064(42000):您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第1行“group”附近使用的正确语法
我无法在组
表上执行任何操作(例如选择、插入)
有什么问题吗?您使用引号创建表(我认为是因为group是一个保留字)
试一试
Group是MySql中的保留关键字。您需要在descripe语句中使用反勾号
请尝试以下命令:
描述“组”
请避免为表名和列名使用保留关键字。您可以在表名中添加前缀,如tbl_group。对于表来说,group不是一个好名字(想想group by)。如果您必须用反勾号限定所有引用(就像您在create语句中所做的那样)。@P.Salmon您是对的,description`group`代码>工作提示:无论如何避免将表名用作保留字。并避免(如果可能的话)使用带引号的名称。虽然表名
是student
,但我无法运行此命令,并且我也遇到了相同的错误1064。重新连接mysql对我来说很有用。
DESCRIBE `group`;