Berkley 使用哈希配置将数据更新为新值

发布于 2024-12-16 23:56:24 字数 564 浏览 2 评论 0原文

我正在尝试编写一个使用伯克利数据库的程序,并且我按如下方式配置了我的数据库:

DatabaseConfig dbConfig = new DatabaseConfig();

dbConfig.setType(DatabaseType.HASH);
dbConfig.setAllowCreate(true);
dbConfig.setSortedDuplicates(false); //tried commented this out as well

// Create the database
std_db = new Database("name.db", null, dbConfig); //delcared as a private variable

我花了最后一个小时在网络上搜索当要输入的新密钥与现有密钥匹配时密钥/数据对会发生什么情况。根据API,当前数据将被新数据覆盖,但在我的程序中似乎并非如此。任何人都知道如何做到这一点,以便如果我放入数据库并且密钥存在,它将覆盖旧数据?

我想先删除旧密钥,然后放入新密钥/数据组合,但此解决方案是一种解决方法,只会增加不必要的开销。

提前致谢 :)

I am trying to write a program that uses a Berkeley Database and i configured my database as followed :

DatabaseConfig dbConfig = new DatabaseConfig();

dbConfig.setType(DatabaseType.HASH);
dbConfig.setAllowCreate(true);
dbConfig.setSortedDuplicates(false); //tried commented this out as well

// Create the database
std_db = new Database("name.db", null, dbConfig); //delcared as a private variable

I have been spending the last hour searching the web for what happens with a key/data pair when a new key to be entered matches an existing one. According to the API the current data will be overwritten with the new data, but in my program it seems that this is not the case. Anyone know how to make it so that if im putting into a database and the key exists it will overwrite the old data?

I was thinking of just deleting the old key first and then putting in the new key/data combo, but this solution is a work-around and just adds unnecessary overhead.

Thanks in Advance :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

关于从前 2024-12-23 23:56:24

我认为database.put()是解决方案。根据以下链接:

Db::put 方法将键/数据对存储在数据库中。 Db::put 函数的默认行为是输入新的键/数据对,如果不允许重复,则替换任何以前存在的键,或者如果允许重复,则添加重复的数据项。如果数据库支持重复项,则 Db::put 方法会在重复集的末尾添加新数据值。如果数据库支持排序重复项,则新数据值将插入到正确的排序位置。

http://web.deu.edu.tr/doc/berkeley /berkeleyDB/api_cxx/db_put.html

I think database.put() is the solution. According to below link:

The Db::put method stores key/data pairs in the database. The default behavior of the Db::put function is to enter the new key/data pair, replacing any previously existing key if duplicates are disallowed, or adding a duplicate data item if duplicates are allowed. If the database supports duplicates, the Db::put method adds the new data value at the end of the duplicate set. If the database supports sorted duplicates, the new data value is inserted at the correct sorted location.

http://web.deu.edu.tr/doc/berkeley/berkeleyDB/api_cxx/db_put.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文