>

ITNOA

프로그램에서 sqlite를 사용하기 위해 sqlite_orm 라이브러리를 사용하고 있으며 아래와 같은 테이블이 있습니다

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

위키 페이지 제거 를 볼 수 있습니다. 복합 키 오브젝트 제거에 대한 명시적인 문서는 없지만 사용자 정의 위치 조건에서 오브젝트를 제거하려는 경우 remove_all 를 사용하십시오.  제거하는 대신

내 질문은이 테이블에서 객체를 효과적으로 제거하는 방법입니다. remove_all을 사용하는 더 좋은 방법이 있습니까?

감사합니다


  • 답변 # 1

    새로운 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");
    
    

  • 이전 javascript - 브라우저는 경도 변수를 정의되지 않은 것으로 읽습니다
  • 다음 c# - 크로스 플랫폼 시스템 상태 얻기 ASPNet Core