【发布时间】:2014-09-16 11:37:40
【问题描述】:
我在 postgresql 中有这个数据库,它有这个索引:
CREATE INDEX fav_alias_lower_index ON fav_alias USING hash((LOWER(fav_alias)));
当我对这个数据库进行逆向工程时,我得到了这个 liquibase 更改日志:
<changeSet author="jmartins (generated)" id="1410448831080-17">
<createIndex indexName="workspace_favorite_alias_lower_case_index" tableName="workspace_favorite_alias" unique="false">
<column name="lower((fava_alias)::text)"/>
</createIndex>
</changeSet>
当我在 PostgreSql 数据库上应用更新时,这可以正常工作,但是,例如,它不适用于 MySql。所以我的问题是我怎样才能使这个索引创建也可用于 MySql、MSSQL 和 Oracle,同时保留 fava_alias 的小写?
谢谢
【问题讨论】:
-
"我怎样才能使这个索引创建可用于 MySql、MSSQL" - 简单的答案:你不能。在 MySQL(和 SQL Server)中,您将为该列分配不区分大小写的排序规则并在其上创建常规索引。对于 Oracle,如果您删除(不必要的)
::textcast,它应该可以正常工作
标签: mysql sql postgresql indexing liquibase