ho questo database in PostgreSQL che ha questo indice:Liquibase creare indici con funzioni
CREATE INDEX fav_alias_lower_index ON fav_alias USING hash((LOWER(fav_alias)));
Quando ho invertito Engineered questa base di dati ho ottenuto questo liquibase changelog:
<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>
Questo funziona bene quando ho applica un aggiornamento su un database PostgreSql, tuttavia, ad esempio, non funziona su MySql. Quindi la mia domanda è: come posso rendere disponibile questa creazione di indice per MySql, MSSQL e Oracle, preservando il minuscolo di fava_alias?
Grazie
"* Come posso rendere questa creazione dell'indice disponibile per MySql, MSSQL *" - risposta semplice: non è possibile. In MySQL (e SQL Server) si assegnano regole di confronto senza distinzione tra maiuscole e minuscole per quella colonna e si crea un indice regolare su di esso. Per Oracle dovrebbe funzionare allo stesso modo se si rimuove il cast (inutile) ':: text' –