【问题标题】:Can I have an index on 4 columns and set it to unique in a Rails app postgresql db?我可以在 4 列上有一个索引并在 Rails 应用程序 postgresql 数据库中将其设置为唯一吗?
【发布时间】:2012-05-11 09:21:22
【问题描述】:

我想根据我的数据库中的 4 列设置索引,以确保快速查找并确保在所有 4 列中没有两行具有相同的条目。从而确保基于 4 列的唯一性。我知道这可以在其他语言和框架中完成,但是可以在 Rails 中完成吗?

我已经看到了在 rails 中设置索引的以下命令:

add_index "users", ["email"], :name => "index_users_on_email", :unique => true

但是,可以对超过 1 列执行类似操作吗?

此外,如果不能对超过 1 列执行此操作,那么人们如何处理基于 rails 中的多个列的唯一性?

【问题讨论】:

    标签: ruby-on-rails database indexing


    【解决方案1】:

    是的,您可以在 Rails 中为多个列创建索引。

    add_index users, [email, col1, col2, col3], :name => "my_name", :unique => true 
    

    应该可以。只要您指定名称,您就应该很好。

    PostgreSQL(不确定 MySQL)对约束名称有字符限制,因此当对多个列使用 add_index 时,请确保您提供自定义名称,或者您的列名称足够短以适应限制,否则自动生成的index_users_on_col1_and_col2_and_col3 可能会为您搞砸。

    【讨论】:

      猜你喜欢
      • 2018-11-10
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      相关资源
      最近更新 更多