在学说 2 中,我有一个实体,它有一个从 web 服务提供的主键,并且还有一个应该是自动增量的索引。
我可以在 mysql 中手动设置,但不能在学说 2 中进行设置。
在学说 2 中,我有一个实体,它有一个从 web 服务提供的主键,并且还有一个应该是自动增量的索引。
我可以在 mysql 中手动设置,但不能在学说 2 中进行设置。
columnDefinition
我用过INT AUTO_INCREMENT UNIQUE
/**
* @var integer
*
* @ORM\Column(type="integer", name="sequence", nullable=true, columnDefinition="INT AUTO_INCREMENT UNIQUE")
*/
protected $sequence = null;
教义迁移包生成
$this->addSql('ALTER TABLE table_name_here ADD sequence INT AUTO_INCREMENT UNIQUE');
编辑:请注意,此答案来自 2016 年,它可能不再有效。请参阅已接受的答案。
自动增量限制与您使用的数据库有关。在 Mysql ,Mysql_autoincrement中,它还取决于您使用的引擎。例子:
对于 MyISAM 和 BDB 表,您可以在多列索引中的辅助列上指定 AUTO_INCREMENT。在这种情况下,AUTO_INCREMENT 列的生成值计算为
您可以在此处获得有关 auto_increment 的一般文档
通常,auto_increment 保留给作为标识符索引一部分的数字字段(涉及一个或多个列)。
所以这适用于mysql。
然而,教义中的 auto_incriment 似乎只允许@Id(主键)
21.2.9。@GeneratedValue
指定使用哪种策略为由@Id 注释的实例变量生成标识符。此注解是可选的,仅在与@Id 结合使用时才有意义。
如果未使用 @Id 指定此注释,则默认使用 NONE 策略。
必需的属性:
strategy:设置标识符生成策略的名称。有效值为 AUTO、SEQUENCE、TABLE、IDENTITY、UUID、CUSTOM 和 NONE。例子:
?php
/**
* @Id
* @Column(type="integer")
* @GeneratedValue(strategy="AUTO")
*/
protected $id = null;
你可能想找一个工作区并张贴一张关于它的票