首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HAM_OVERWRITE在HamsterDB中插入值

使用HAM_OVERWRITE在HamsterDB中插入值
EN

Stack Overflow用户
提问于 2012-12-22 15:28:28
回答 1查看 71关注 0票数 0

如果我在HamsterDB数据库中插入一个带有HAM_OVERWRITE标志的值,当该键不存在时会有什么影响?

我跟踪程序中的最高序列号,并将其持久化到HamsterDB数据库中:

代码语言:javascript
复制
if (serial > high_serial_) {
    high_serial_ = serial;
    ham::key key((void*)HIGH_SERIAL_KEY, strlen(HIGH_SERIAL_KEY));
    ham::record record((void*)&high_serial_, sizeof(high_serial_));

    db.insert(&key, &record, HAM_OVERWRITE);
}

再次启动应用程序时,将使用存储在DB中的当前值初始化high_serial_

代码语言:javascript
复制
ham::key key((void*)HIGH_SERIAL_KEY, strlen(HIGH_SERIAL_KEY));
auto record = roll_file_db.find(&key);

但是这个调用抛出了HAM_KEY_NOT_FOUNDdocumentation声明,如果键不存在,它将被简单地插入。但这并不是我所经历的。

EN

回答 1

Stack Overflow用户

发布于 2013-08-08 03:54:24

如果密钥不存在,而您调用ham_db_insert(db, txn, key, record, HAM_OVERWRITE),则会插入密钥。

如果键不存在,而您调用了ham_db_find(),那么您将得到HAM_KEY_NOT_FOUND

ham_db_find的文档将HAM_KEY_NOT_FOUND作为返回值列出“如果键不存在”:http://hamsterdb.com/public/scripts/html_www/group__database.html#ga90dd239b79be2181461bbabc2eee1496

HTH Christoph

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14000941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档