gpt4 book ai didi

sql - Rails Postgres 功能索引

转载 作者:行者123 更新时间:2023-11-29 11:20:17 24 4
gpt4 key购买 nike

我应该如何将包含函数的多列索引输入到 schema.rb 中?

例如这行不通:

add_index "temporary_events", ["templateinfoid", "campaign", "date(gw_out_time)", "messagetype"], :name => "temporary_events_campaign_tinfoid_date_messagetype"

rake db:test:load

rake aborted!

PGError: ERROR: column "date(gw_out_time)" does not exist

: CREATE INDEX "temporary_events_campaign_tinfoid_date_messagetype" ON "temporary_events" ("templateinfoid", "campaign", "date(gw_out_time", "messagetype")

最佳答案

用于创建索引的内置 ActiveRecord 方法 (add_index) 不支持函数或任何其他更高级的功能。相反,您可以使用 execute 通过 SQL 创建索引:

execute <<-SQL
CREATE INDEX temporary_events_campaign_tinfoid_date_messagetype
ON temporary_events(templateinfoid, campaign, date(gw_out_time), messagetype);
SQL

请注意,如果您未使用 SQL 架构格式 (config.active_record.schema_format = :sql),则在迁移中使用 execute 可能会出现问题。如需更多信息,请搜索 schema_format .

关于sql - Rails Postgres 功能索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3265190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com