gpt4 book ai didi

c++ - 如何使用复合键在 SQLite ORM 中插入条目

转载 作者:太空狗 更新时间:2023-10-29 23:10:39 26 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)。当我从 Object 创建实例时,如下所示,

Object object{0, 0, "dummy"};

并尝试插入表格

auto id1 = storage.insert(object);

我得到一个异常(exception)。

如何向这个表中插入一个对象?

最佳答案

正如您在 GitHub 的一期中看到的 SQLite ORM , 项目 Composite key title方法,要插入具有复合键的对象,您必须使用 replace 函数而不是如下所示的 insert 函数。

假设您有一个如下所示的实体:

struct Object
{
int key_part_1;
int key_part_2;
std::string name;
};

并创建如下模式:


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)));

因此您可以插入该实体的一个实例,如下所示:

Object object{0, 0, "Skillet"};

storage.replace(object);

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

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