mnesia資料庫表的id

2021-08-22 18:31:25 字數 661 閱讀 1809

對於mnesia資料庫表有時候需要有乙個id欄位,就像關聯式資料庫的主鍵.

最簡單的辦法是用uuid做id,但是我們希望此id是整數遞增的.或者用 做id也是不錯的辦法.

類似於乙個set集合(意思是集合中不可能兩個相同的鍵同時存在),每個鍵對應的值將作為id,

方法mnesia:dirty_update_counter(tab, key, incr)的特點:

tab: 某個存放key對應的最新鍵值的mnesia資料庫表,這個表儲存key-value

key: 鍵名

incr: 鍵值遞增量

這個方法的意義在於:

1.它的效率很高;

2.這個方法是原子操作,不管有沒有在事務中使用,它總是乙個原子操作

如果兩個程序同時呼叫此方法,每個呼叫都會得到正確的更新值.

假設我們設計的feature表需要有乙個id,這個id是唯一且遞增的,

1.建立如下結構的mnesia資料庫表

-record(unique_id, )

2.每為feature表加入一條新記錄時,需要得到新的id值:

mnesia:dirty_update_counter(unique_id, feature, 1)

這裡我們把表名作為key,通過此方法即得到這個表當前的id

以上暫時沒有考慮集群的情況

Erlang資料庫Mnesia操作

mnesia是一套輕量級的軟實時分布式資料儲存系統,支援冗餘複製和事務,特別適合於儲存離散的erlang資料塊,尤其擅長ram中的資料儲存。初始化資料庫步驟 1.啟動節點,erl mensa dir dir name mynode 2.建立資料庫模式,mnesia create schema nod...

Mnesia資料庫操作整理 1

mnesia資料庫的操作和以前習慣的sql資料庫操作幾乎完全不同,剛開始用很不使用。現將常見的讀寫操作整理於下 1 髒讀 mnesia dirty read tab,key valuelist exit 示例 對於set型別的表,這個操作返回乙個值或者空表,因為set型別表鍵值不可重複。如果對bag...

erlang資料庫Mnesia主鍵自增

erlang資料庫mnesia主鍵自增 2012 09 24 22 32 07 分類 python ruby 對於mnesia資料庫表有時候需要有乙個id欄位,就像關聯式資料庫的主鍵.最簡單的辦法是用uuid做id,但是我們希望此id是整數遞增的.或者用 做id也是不錯的辦法.類似於乙個set集合 ...