Mysql 无法使用控制台生成布尔列
我试图在一个实体上添加一个新的布尔属性,但是当我执行条令:schema:update命令时,我得到以下错误:Mysql 无法使用控制台生成布尔列,mysql,sql,symfony,boolean,Mysql,Sql,Symfony,Boolean,我试图在一个实体上添加一个新的布尔属性,但是当我执行条令:schema:update命令时,我得到以下错误: [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1064 Syntax error near 'generated TINYINT(1) DEFAULT '1'' at line 1 这是我的密码: /** * @var boolean * * @ORM\Column(type="boole
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1064 Syntax error near
'generated TINYINT(1) DEFAULT '1'' at line 1
这是我的密码:
/**
* @var boolean
*
* @ORM\Column(type="boolean", nullable=true, options={"default":true})
*/
private $generated;
我还尝试将默认值设置为0
,设置为1
,设置为false
我也试过:
private $generated = 0
private $generated = false
我还试图通过构造函数设置默认值,但没有任何效果
最后,我在没有任何默认值的情况下进行了尝试,得到了以下错误:
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1064 Syntax error near 'generated TINYINT(1) DEFAULT NULL' at line 1
似乎我是唯一一个使用Symfony的人,但却出现了以下错误:(
如果有人知道。。。
非常感谢
Charles
生成的
在mysql中是一个保留字,因此您必须:
有时,由于保留字冲突,有必要引用列或表名。原则不会自动引用标识符,因为这会导致比解决问题更多的问题。引用表和列名需要在定义中明确使用记号
之后,您可以直接对其进行初始化:
/**
* @var boolean
*
* @ORM\Column(name=`generated`, type="boolean", nullable=true)
*/
private $generated = true;
并使用
force
参数调用update语句,如doctrine:schema:update--force
有关详细信息,请参阅下面的链接
'generated是一个mysql保留关键字,从5.7.6开始,它就不起作用了:(即使我没有设置任何默认值,我也会遇到一个SQL错误。但是感谢您的帮助!您是否尝试将
name='generated`
添加到注释中,可能它是SQL中的保留字。您需要使用记号;-)谢谢!这就是问题所在…生成的
似乎是mysqlyou的保留字。我已经相应地更新了答案。谢谢,这是我的问题!