部分序列

时间:2018-08-01 17:36:45

标签: postgresql phoenix-framework ecto

我的表中包含以下列:id,这是默认主键,还有form_idform_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

0 个答案:

没有答案