我想向 MySQL 数据库中的表列添加索引。我正在使用 Doctrine 2 创建我的数据库模式。
我知道我可以使用
/** @Id @Column(type="integer") */
创建主键。但我的专栏既不具有
unique
也不具有 primary key
属性。它只是我表中的一个index
(MySQL 知道这三种类型)。
创建这样的索引的正确语句是什么?
当你使用 Doctrine 和 ORM 时:
@ORM\Table(indexes={@ORM\Index(name="name_idx", columns={"name"})})
与 PHP8 属性一起使用
#[ORM\Index]
:
<?php
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ORM\Index(columns: ['column_name'], name: 'columns_idx')]
class FooBar
{
/* ... */
#[ORM\Column]
private bool $columnName = false;
/* ... */
}
如果您使用带有教义的 Symfony,您还需要
use
Index
类才能使注释正常工作
use Doctrine\ORM\Mapping\Index;
部分工作代码
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="AppBundle\Repository\CountryRepository")
* @ORM\Table(indexes={@ORM\Index(columns={"slug"})})
*/
class Country extends AbstractTrans implements SuggesterItem