【发布时间】:2017-08-25 09:38:39
【问题描述】:
我有很多表的数据库,其中一个叫做 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);
当我使用命令 show tables 时,我得到:
+-------------------------------------+
| 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 表执行任何操作(例如选择、插入)。
这有什么问题?
【问题讨论】:
-
Group 对于表格来说并不是一个好名字(想想 group by)。如果您必须使用反引号限定所有引用(就像您在 create 语句中所做的那样)。
-
@P.Salmon 你是对的,
describe `group`;工作
标签: mysql database relational-database