【发布时间】:2023-01-13 12:42:00
【问题描述】:
我试图为 ets 编写一个包装器,您可以使用它来读取和写入 etc 中的结构,问题是:如何使 id 自动生成
defmodule StructTable do
defstruct id: 0, data: nil
def create_table do
:ets.new(__MODULE__, [:orderedset, :named_table, {:keypos, 1}])
end
def insert_into_table(%__MODULE__{ id: id, data: data}) do
if hd(:ets.lookup(__MODULE__, id)) == false do
:ets.insert(__MODULE__, {id,data})
else IO.puts("already exists")
end
end
def select_data(iid) do
hd(:ets.lookup(__MODULE__, iid))
end
def select_all do
:ets.tab2list(__MODULE__)
end
end
【问题讨论】:
-
您是否尝试过将当前索引号存储在不同的 ETS 表中并进行更新?你看过hex.pm/packages/pockets吗?
标签: database insert elixir structure ets