我的数据库中有这个表:
create_table :month_holidays_translations, :id => false do |t|
t.integer :month_holidays_id, null: false
t.string :month, null: false
t.string :language, null: false
end
我想创建一个在列上创建多个唯一键的迁移:month_holidays_id,month和language。我怎么做的? 当我执行add_index(下面的代码)时,这会在我的sql server数据库中创建索引但不是唯一键。
add_index "month_holidays_translations", ["month_holidays_id", "month", "language"], :unique => true
答案 0 :(得分:0)
如果要添加没有索引的约束。这取决于您使用的数据库。但是下面的内容适用于你的情况。
class AddUniqeConstraintToMonthHolidaysTranslations < ActiveRecord::Migration
def up
execute <<-SQL
ALTER TABLE month_holidays_translations ADD constraint month_holidays_id_month_language UNIQUE (month_holidays_id, month, language);
SQL
end
def down
execute <<-SQL
ALTER TABLE month_holidays_translations
drop constraint if exists month_holidays_id_month_language;
SQL
end
end
您可以查看参考资料以获取更多详细信息this