我有一个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;
答案 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] ( ...