> Erlang中文手册 > insert_new/2 向 ETS 表插入新数据

ets:insert_new/2

向 ETS 表插入新数据

用法:

insert_new(Tab, ObjectOrObjects) -> boolean()

这个函数跟 ets:insert/2 很相似,都是向 ETS 表 Tab 插入数据 ObjectOrObjects,不同的是,在插入数据时有相同的键要被覆盖替换(类型是 set 或 ordered_set 的表),或者要添加的多个对象数据的键已在表里存在(类型是 bag 或 duplicate_bag 的表),该函数则返回false。

如果插入的对象数据 ObjectOrObjects 是一个列表,那么在插入数据之前,将检测列表里的每一个键。如果列表里至少有一个键在表中已存在,则不会插入任何对象数据。

跟 ets:insert/2 一样,该函数的整个操作都保持它的原子性和独立性。

ets:new(test_ets_new, [set, named_table]),
ets:insert(test_ets_new, [{a, 1}, {b, 2}]),
ets:insert_new(test_ets_new, [{c, 3}]).
ets:new(test_ets_new, [set, named_table]),
ets:insert(test_ets_new, [{a, 1}, {b, 2}]),
ets:insert_new(test_ets_new, [{a, 3}]).