首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用doctrine2设置初始auto_increment值

如何使用doctrine2设置初始auto_increment值
EN

Stack Overflow用户
提问于 2011-11-06 03:18:08
回答 3查看 3K关注 0票数 7

我使用doctrine2映射器生成我的innoDB (mysql)数据库。如何使用auto_incremented注解设置我的php id的初始值?

这就是我当时对实体类型的id进行建模的方式。

代码语言:javascript
运行
复制
/**
 * @var integer $_id
 *
 * @Column(name="id", type="integer", nullable=false)
 * @Id
 * @GeneratedValue(strategy="IDENTITY")
 */
private $_id;

我在文档中找到了以下代码,但看起来它似乎要使用一个单独的表来生成if。

代码语言:javascript
运行
复制
/**
 * @Id
 * @GeneratedValue(strategy="SEQUENCE")
 * @Column(type="integer")
 * @SequenceGenerator(sequenceName="tablename_seq", initialValue=1, allocationSize=100)
 */
EN

回答 3

Stack Overflow用户

发布于 2011-11-13 17:39:58

您可以将strategy=设置为“NONE”,并在@prepersist函数中设置最后一个ID。更简单的做法是在DataFixture或DB迁移中添加"ALTER TABLE something AUTO_INCREMENT = 100;“。它不是可移植的SQL,但它可以在不增加实体复杂性的情况下完成这项工作。

票数 2
EN

Stack Overflow用户

发布于 2017-08-10 03:36:00

从文档上看不是很清楚,但是有消息说...

代码语言:javascript
运行
复制
doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php:        if (isset($options['auto_increment'])) {
doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php:            $tableOptions[] = sprintf('AUTO_INCREMENT = %s', $options['auto_increment']);

因此for mysql作为@table注解的选项

代码语言:javascript
运行
复制
* @ORM\Table(name="xxx", options={"auto_increment": 100})
票数 1
EN

Stack Overflow用户

发布于 2019-05-03 22:37:50

下面是在MySQL的规则2中设置auto_increment的完整代码示例:

代码语言:javascript
运行
复制
$connection = $this->getEntityManager()->getConnection();
$connection->prepare('ALTER TABLE my_table AUTO_INCREMENT = 100;')->execute();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8022629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档