gpt4 book ai didi

ruby - ActiveRecord 迁移 :unique => true being ignored?

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:56 25 4
gpt4 key购买 nike

我正在创建一个表并指定:

t.integer   :random_id, :unique => true

它不会为 random_id 添加唯一索引。但如果我这样做:

ActiveRecord::Migration.add_index :test, :random_id, :unique => true

然后就可以了。第一种方式有什么问题?谢谢

最佳答案

我想你已经在你的 2 个例子中自己解释过了。
t.integer 是一个列定义,而 add_index 添加一个索引。
:unique 是一个索引选项,索引与列分开定义:
http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

这使您不仅可以将单个列定义为唯一,还可以将列组合定义为唯一。如果您只想要特定范围内的唯一值,这将特别有用,例如用于在部分中订购内容:

add_index(:post_position_within_section, [:position, :sections_id], :unique => true)

从这里稍微修改: http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/add_index

关于ruby - ActiveRecord 迁移 :unique => true being ignored?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13924135/

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