gpt4 book ai didi

c++ - 如何使用复合键删除 SQLite ORM 中的条目

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:48 25 4
gpt4 key购买 nike

我正在使用 SQLite ORM在我的程序中使用 SQLite 的库,我有一个如下表:

auto storage = make_storage("test_remove.sqlite",
make_table("objects",
make_column("key_part_1",
&Object::key_part_1),
make_column("key_part_2",
&Object::key_part_2),
make_column("name",
&Object::name),
primary_key(&Object::key_part_1, &Object::key_part_2)));

如您所见,该表有一个组合键(key_part_1key_part_2)。

我看到 remove wiki page ,而且,如您所见,没有任何关于删除复合键对象的明确文档,但它说如果您想删除具有自定义 where 条件的对象,请使用 remove_all 而不是 remove

如何有效地从此表中删除对象?有没有更好的方法使用remove_all

最佳答案

在新SQLite ORM开发分支,这个库的创建者发布了一个新的 API,如下所示:

remove(Ids... ids)

如果您有如下对象:

struct Object {
int id;
std::string name;
};

并且有一个像下面这样的组合键:

auto storage = make_storage("",
make_table("objects",
make_column("id", &Object::id),
make_column("name", &Object::name),
primary_key(&Object::id, &Object::name)));

使用此 API,您可以删除如下所示的复合键对象:

        storage.remove<Object>(1, "Skillet");

关于c++ - 如何使用复合键删除 SQLite ORM 中的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56078061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com