我的表中包含以下列:id
,这是默认主键,还有form_id
和form_field_id
。
我想使form_field_id
自动递增(即:serial
类型),但在form_id
上也是唯一的。基本上是这样的:
field_id form_id form_field_id
--------- --------- ----------------
1 1 1
2 1 2
3 1 3
4 2 1 <-- here
5 2 2
在上面说“这里”的地方,我需要从1开始的序列,因为该行是为另一个form_id
插入的。
我寻找了一种在Ecto.Migration中创建唯一的局部索引的方法,但是这些示例并未涵盖上述情况。
这是我目前拥有的:
def change do
create table(:fields) do
add :form_id, references(:forms, on_delete: :delete_all)
add :form_field_id, :serial
end
create unique_index(:fields, [:form_id, :form_field_id]
end