Database Doctrine2列类型长度为255的整数不';不适用于DB
我正在为我的DB使用原则2,目前我正在尝试为我的一个列设置一个长度,该列具有“整数”类型,但它似乎没有被接受Database Doctrine2列类型长度为255的整数不';不适用于DB,database,integer,doctrine-orm,Database,Integer,Doctrine Orm,我正在为我的DB使用原则2,目前我正在尝试为我的一个列设置一个长度,该列具有“整数”类型,但它似乎没有被接受 /** @Column(type="integer", length=255) */ protected $number; 当我检查数据库时,它仍然显示“int(11)”而不是“int(255)”。我还没有发现任何人在谷歌上遇到过这个问题,或者我的关键词工作得不太好。我见过一些人使用length=XXX而不抱怨它的例子,所以我认为这将是一种方式,但到目前为止没有什么好的 我总是删除/重
/** @Column(type="integer", length=255) */
protected $number;
当我检查数据库时,它仍然显示“int(11)”而不是“int(255)”。我还没有发现任何人在谷歌上遇到过这个问题,或者我的关键词工作得不太好。我见过一些人使用length=XXX而不抱怨它的例子,所以我认为这将是一种方式,但到目前为止没有什么好的
我总是删除/重建整个数据库和代理等,所以我怀疑它是否来自那里。这是因为MySQL中不能有这么大的
INT
尝试使用类型BIGINT
,它从-9223372036854775808变为9223372036854775807(有符号),或从0变为18446744073709551615(无符号)
条令版本:
/** @Column(type="bigint") */
protected $number;
我们经常看到这种误解。因此,为了澄清@meze(见上面的评论) 任何MySQL整数类型的
size
都与ZEROFILL
发挥作用的显示宽度有关
在ZEROFILL
列上进行选择会导致一个值,该值至少用0
填充到该列的大小
/显示宽度
一个简单的例子来充分解释它。查看返回的输出
CREATE TABLE `foo`
(
`col_1` INT(1),
`col_1_Z` INT(1) ZEROFILL,
`col_11` INT(11),
`col_11_Z` INT(11) ZEROFILL
);
INSERT INTO `foo`
VALUES
(42, 42, 42, 42);
SELECT
col_1,
col_1_Z,
col_11,
col_11_Z
FROM
`foo`;
/* returned output */
| col_1 | col_1_Z | col_11 | col_11_Z |
|-------------|-------------|-------------|-------------|
| 42 | 42 | 42 | 00000000042 |
“长度”属性表示宽度。对于INT
width,可以有这么大的数字,因为它与INT的范围无关。我同意@meze。这是假的。