Got*_*bel 33 mysql indexing doctrine-orm
我想index在MySQL数据库中添加一个表列.我正在使用Doctrine 2来创建我的数据库方案.
我知道我可以用
/** @Id @Column(type="integer") */
Run Code Online (Sandbox Code Playgroud)
创建主键.但我的专栏既unique没有primary key属性也没有属性.它应该只是index在我的表中(MySQL知道这三种类型).
创建这样一个索引的正确陈述是什么?
Fli*_*lip 58
如果要使用doctrine,则表必须具有主键,请参阅:http://docs.doctrine-project.org/en/latest/reference/basic-mapping.html#identifiers-primary-keys
创建索引:https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#annref_index
<?php
/**
* @Entity
* @Table(name="ecommerce_products",indexes={@Index(name="search_idx", columns={"name", "email"})})
*/
class ECommerceProduct
{
}
Run Code Online (Sandbox Code Playgroud)
请注意,只有在从PHP代码生成架构时才会使用此选项.因此,如果您的表已经存在,您也可以自己添加索引.
web*_*sky 27
当你使用doctrine和orm时:
@ORM\Table(indexes={@ORM\Index(name="name_idx", columns={"name"})})
Run Code Online (Sandbox Code Playgroud)
lon*_*ong 23
对于 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;
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
请参阅: https: //www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/attributes-reference.html#attrref_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
Run Code Online (Sandbox Code Playgroud)
小智 7
如果您将Symfony与教义结合使用,则还需要use使用Index该类,以使注释正常工作
use Doctrine\ORM\Mapping\Index;
| 归档时间: |
|
| 查看次数: |
38127 次 |
| 最近记录: |