我需要爲3列(VARCHAR
,INT
和INT
)創建多列索引多列索引,可以打電話給他們varchar_col
,int1_col
和int2_col
。對於VARCHAR
列,我需要應用lower(varchar_col)
表達式。表達式(PostgreSQL和Rails)的
當我創建表達
add_index :table, 'lower(varchar_col)', name: 'index_name'
它的工作原理,但是當我嘗試使用
add_index :table, ['lower(varchar_col)', :int1_col, :int2_col], name: 'index_name'
創建多列,我收到
PG::UndefinedColumn: ERROR: column "lower(varchar_col)" does not exist
是否有可能一個列索引使用Rails add_index
函數創建這樣的索引,或者我需要在migrati中執行SQL查詢檔案? PostgreSQL是否支持帶表達式的多列索引?如果支持,我必須在遷移文件中寫入以使其起作用?
謝謝你的幫助!
P.S.我使用Rails 5.
大,謝謝!儘管我已經在遷移文件中執行了SQL查詢,但我在下面添加了答案。 –