2013-03-07 2 views
0

Google 스프레드 시트에서 scriptDb에 많은 데이터를 저장해야하지만 전체 일괄 처리를 저장하지 않고 일괄 저장을 계속 진행해야하는 프로그램이 있습니다. 배치 저장을 위해 배열에 추가하기 전에 객체가 이미 데이터베이스에 있는지 확인하는 방법을 찾으려고합니다. 물론 검사 할 각 객체에 대해 데이터베이스를 쿼리하면 최대 실행 시간을 초과하게됩니다.scriptDb에 저장하기 전에 중복 확인

데이터베이스를 한 번 쿼리하고 각 개체를 해당 쿼리와 비교하여 이전에 저장되었는지 확인하는 효율적인 방법이 있습니까? 그런 다음 쿼리에없는 개체 배열을 간단히 푸시 할 수 있습니다.

+0

교수형? 벌크 연산이 실패하면 추가되지 않은 항목을 보여주는 결과가 나타납니다. https://developers.google.com/apps-script/scriptdb#bulk_operations – DavidF

+0

현재 개체가 중복되었는지 확인하기 위해 사용중인 쿼리는 무엇입니까? – ScampMichael

+0

@DavidF, "Hanging"에 의해 일괄 저장 작업을 완료하지 못했음을 의미합니다. 수동으로 취소 한 다음 취소 후 데이터베이스에있는 항목을 확인해야만 일부 항목이 저장되었지만 다른 항목은 저장되지 않았지만 완료되지 않았기 때문에 확인할 수 있습니다. n "결과"입니다. 이미 다른 사람들이 버그로 게시했습니다. –

답변

2

나는 이것이 어리석은 것처럼 보일 수 있지만 db (또는 Where 절이없는 부분)에서 덮어 쓸 것이라고 생각하는 데이터를 항상 잡아서 배열에 저장하고 스프레드 시트에서 데이터를 가져온 다음 배열에 던져서 스프레드 시트 배열을 빠르게 반복합니다. 데이터가 dbarray에 있으면 스프레드 시트 배열에서 연결하십시오. 완료되면 해당 데이터를 db로 푸시합니다.

이렇게하면 DB를 한 번만 쿼리하고 덮어 쓰기를 줄이며 가능한 한 밀어 내지 마십시오.

kt

+0

이것은 내가 끝내었던 것입니다 - 당신이 질문에 대답 한 시간에 대한 변경을 했어야합니다. 나는 옳은 길을 가고 있었다는 것을 알고있다. –

관련 문제