【发布时间】:2015-10-30 07:46:07
【问题描述】:
如何使用注释设置自动递增 id 的起始值?
我希望它从 250000 开始
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
protected $id;
【问题讨论】:
标签: php sql symfony orm doctrine-orm
如何使用注释设置自动递增 id 的起始值?
我希望它从 250000 开始
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
protected $id;
【问题讨论】:
标签: php sql symfony orm doctrine-orm
/**
* @ORM\Id
* @ORM\GeneratedValue(strategy="SEQUENCE")
* @ORM\SequenceGenerator(sequenceName="id", initialValue=250000)
* @ORM\Column(type="integer")
*/
protected $id;
http://doctrine-orm.readthedocs.org/en/latest/reference/basic-mapping.html
【讨论】:
在 MySQL 平台上,我编写 (@ORM\Table(options={"auto_increment": 12345})) 将“AUTO_INCREMENT = 12345”添加到 SQL 创建表中。我没用@ORM\SequenceGenerator:
/*
* @ORM\Table(options={"auto_increment": 12345})
*/
class MyEntity {
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
// Others properties
}
在迁移文件中:
$this->addSql('CREATE TABLE my_entity (id INT AUTO_INCREMENT NOT NULL, ...) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB AUTO_INCREMENT = 12345');
【讨论】:
不知道这个答案对用户有用与否。 但对我来说,它给出了所需的结果(对于 mysql 的教义) 我使用了通常使用的自动增量 ID,
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
第一次运行命令更新时,表将创建。 比你应该手动运行下面的命令来设置自定义初始自动增量 id
ALTER TABLE users AUTO_INCREMENT=1001;
再次在运行模式时,它不会更新手动设置的自动增量。 就是这样!!这是理想的结果。
【讨论】: