2011-05-15 25 views
0

我正在阅读Symfony文档(Practical Symfony),并且我完成了使用propel创建SQL代码。Symfony:创建无效的MySQL代码?

但是,当我尝试

$ symfony propel:insert-sql 

MySQL的抱怨有:

#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 'Type=InnoDB' at line 7 

片段所产生的MySQL的代码:

CREATE TABLE `jobeet_category` (
`id` INTEGER NOT NULL AUTO_INCREMENT , 
`name` VARCHAR(255) , 
PRIMARY KEY (`id`) , 
UNIQUE KEY `jobeet_category_U_1` (`name`) 
) TYPE = InnoDB; 

所以问题是TYPE = InnoDB的; ,但我不明白为什么propel会生成无效的代码。

我跟着书中的所有指令,我不知道可能是什么问题 - 也许MySQL的版本我有吗?

编辑:我发现我的答案。 http://zippykid.com/2010/05/symfony-mysql5-5-error/

+0

你使用的symfony的版本? – Alp 2011-05-15 15:53:25

+0

1.4.11。但我想我想通了:http://zippykid.com/2010/05/symfony-mysql5-5-error/ – Tool 2011-05-15 16:00:53

+0

这是MySQL的一个有效的SQL查询了过去10多年......这仅仅是最新的主要版本(5.5.x)在DDL语法中将'TYPE | ENGINE'改为'ENGINE'。 – 2011-05-15 16:03:25

回答

2

我敢肯定这应该是ENGINE = InnoDB,而不是类型。

+0

是的,但是我应该怎么做改变,以便推动产生正确的代码? – Tool 2011-05-15 15:53:44

+0

@Tool更正该代码。 – 2011-05-15 16:23:53

+0

您可以手动更改它,或降级您的MySQL版本。我不知道你是否可以升级这个sympohony/propel thingy来支持最新的语法。 – Nanne 2011-05-15 17:53:15