Doctrine生成的SQL语句给出了1064

时间:2012-01-20 15:24:46

标签: mysql sql doctrine-orm

我有一个MySQL语句,由doctrine生成,它给出了1064错误。在分解整个SQL时,我发现错误特定于一个名为group的表。对我来说,查询看起来很好,也许对sql语句更有技巧看到这个?

错误:

#1064 - 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 ( id INT AUTO_INCREMENT NOT NULL, name VARCHAR(150) NOT NULL, creationdate' at line 1

声明:

CREATE TABLE group (
id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(150) NOT NULL,
creationdate DATETIME NOT NULL, 
deleted TINYINT(1) NOT NULL, 
PRIMARY KEY(id)) 
ENGINE = InnoDB;

3 个答案:

答案 0 :(得分:2)

GROUP是MySQL reserved word,重命名此表或使用反引号(`) -

CREATE TABLE `group`(
  id INT AUTO_INCREMENT NOT NULL,
  name VARCHAR(150) NOT NULL,
  creationdate DATETIME NOT NULL,
  deleted TINYINT(1) NOT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB;

答案 1 :(得分:0)

group是保留字,除非正确引用,否则不能用作表名。

如果您的MySQL安装配置为以ANSI(标准)模式运行,则必须使用双引号引用它:

CREATE TABLE "group" 

如果您的服务器以非标准模式运行(不幸的是默认模式),则需要

CREATE TABLE `group`

答案 2 :(得分:0)

首先猜测是因为group是关键字,你试过吗

CREATE TABLE [group] ( ...