mysql - 具有多个索引的学说 2

标签 mysql annotations indexing doctrine-orm

我正在使用 zend 框架和 doctrine2.1 进行开发。

我已经从数据库中生成了实体。

但问题是:Doctrine 无法识别我的索引。它们根本没有在实体注释中标记。

当我转到验证模式并从 orm:schema-tool:update --dump-sql 转储 sql 时,它会生成 sql 以删除整个数据库中的所有索引。

我发现 Doctrine 有如下用于定义索引的注解:

indexes={@index(name="index_name",
                columns={"database_column1","database_column2"}
        )}

但这允许我为多个列定义一个索引,我并不真的需要它。
我想要的是能够在多列上定义多个索引,每列一个索引。

有什么办法可以实现吗?有没有一种方法可以让注释定义多个索引。

最佳答案

我会说你可以在 indexes 属性中插入多个索引(但我还没有时间测试它):

indexes={
@ORM\Index(name="index_name", columns={"database_column1","database_column2"}),
@ORM\Index(name="index_name2", columns={"database_column1"}),
@ORM\Index(name="index_name3", columns={"database_column2"})
}

希望对你有帮助

关于mysql - 具有多个索引的学说 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8141309/

相关文章:

php - MySQL 具有多个日期范围

configuration - Doctrine2 实体命名空间

android - 如何使用jackson注解解析jsonarray

hibernate - 如何在 JPA 实体中定义非聚集索引 include 子句

mysql - 将列从非空设置为空 - mysql

mysql - 如何获取 MySQL 中所有表的所有列名?

java - Zend/PHP : how to perform HTTP POST to controller and mapper php classes

java - @Inherited注解没有被继承

SQL Server 2008 筛选索引

python - 按值作为索引删除列表中的元素