使用 varchar 作为主键创建 table

Create a table with a varchar as primary key

有没有一种方法可以用 varchar 作为主键(在 Symfony/Doctrine 中)创建 table?

CREATE TABLE `table_name` (
  `field_one` varchar(10) NOT NULL,
  `field_two` decimal(10,2) DEFAULT NULL,
  PRIMARY KEY (`field_one`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

当我尝试使用 php bin/console make:entity 创建它时,它会创建一个整数 id 字段作为主键。

还有没有办法为整数主键字段自定义名称?

Doctrine 的注释也适用于主键。 这是一个例子:

 * @ORM\Column(name="field", type="string", length=30, nullable=false)
 * @ORM\Id
  private $field;

如果您想自己设置您的 ID,您必须禁用生成的价值策略: @ORM\GeneratedValue(strategy="NONE")