キーを上書きしない良い戦略は何ですか?
同じキーでPut操作を 2 回実行するとします。現在、エラーは発生しませんが、古い値を上書きします。
古い価値観を維持したい。
1 つのオプションは、上書きか挿入かを確認するためだけに、 Putごとに追加の読み取りを行うことです。ただし、この場合、最初の要素については、データベースのサイズも確認する必要があります。私の str は増分文字列であるため、同じコードの次の反復では同じキーが異なる str になります。
leveldb_t *db;
leveldb_options_t *options;
leveldb_readoptions_t *roptions;
leveldb_writeoptions_t *woptions;
size_t read_len;
char *err = NULL;
/* OPEN */
options = leveldb_options_create();
db = leveldb_open(options, "testdb", &err);
if (err != NULL)
return;
leveldb_free(err);
err = NULL;
/* WRITE */
woptions = leveldb_writeoptions_create();
leveldb_writeoptions_set_sync(woptions, 1);
leveldb_put(db, woptions, "Key", 3, *str, 64 , &err);
if (err != NULL)
return(1);
leveldb_free(err);
err = NULL;