Как удалить запись в sqlite_orm с помощью составного ключа - PullRequest
0 голосов
/ 10 мая 2019

ITNOA

Я использую библиотеку 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_1 и key_part_2).

Я вижу страницу удаления wiki , и, как вы можете видеть, нет явной документации по удалению объектов составного ключа, но это, скажем, если выхотите удалить объект с пользовательскими условиями, в котором вместо * удалите remove_all.

Итак, мой вопрос заключается в том, как эффективно удалить объект из этой таблицы?Есть ли лучший способ использовать remove_all?

спасибо

1 Ответ

0 голосов
/ 05 июня 2019

В новой ветке sqlite_orm dev создатель этой библиотеки выпустил новый 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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...