我正在使用Doctrine 2作为我的数据库,我正在尝试为我的一个列设置一个“整数”类型的长度,但它似乎似乎没有。
/** @Column(type="integer", length=255) */
protected $number;
当我检查我的数据库时,它仍然显示“int(11)”而不是“int(255)”。我没有发现任何人在谷歌遇到这个问题或者我的关键字工作不是很好。我已经看过一些人使用长度= XXX而没有抱怨的例子,所以我认为这将是要走的路,但到目前为止还不好......
我总是丢弃/重建整个数据库和代理等,所以我怀疑它来自那里。
答案 0 :(得分:3)
这是因为你在MySQL中不能有这么大的INT
。
尝试使用BIGINT
类型,它从-9223372036854775808到9223372036854775807(已签名)或从0到18446744073709551615(无符号)。
学说版本:
/** @Column(type="bigint") */
protected $number;
答案 1 :(得分:0)
经常看到这种误解。所以,澄清@meze(见上面的评论)。
任何MySQL整数类型的size
都与display width
的{{1}}有关。
ZEROFILL
列上的选择会导致至少左侧填充ZEROFILL
的值,直至列的0
/ size
。
一个简单的例子来完整地解释它。查看返回的输出。
display width