2013-07-25 4 views
0

나는이 예sqlite3를 : 하나의 트랜잭션에서 여러 업데이트가

var newQuery = true, query = ''; 
for (i=0; i<locations_length; i++) { 
    if (newQuery) { 
     query = 'INSERT INTO myTable (id, name, code)'; 
     newQuery = false; 
    } 
    else { 
     query += ' UNION'; 
    } 

    query += ' SELECT "'+values[i][0]+'", "'+values[i][1]+'", "'+values[i][2]+'"'; 

    if (i!=0 && i%499==0) { 
     db.execute(query); 
     newQuery = true; 
    } 
} 

같이 SELECT UNION을 사용하여 하나의 트랜잭션에 여러 INSERT를 넣어하지만 여러 업데이트 작동하지 않는 방법을 배웠습니다.

하나의 트랜잭션에 여러 개의 UPDATE를 넣을 수있는 방법이 있습니까?

또한 INSERT와 UPDATE를 하나의 트랜잭션으로 혼합하는 방법이 있습니까?

나는 파이썬 2.7과 함께 작업하고 있습니다.

미리 감사드립니다.

+2

당신은 파이썬에서 작업하는, 아직 비 파이썬 코드를 기록했다. 비 파이썬 코드를 참조하고 파이썬으로 재현하려고합니까? –

+0

javascript처럼 보입니다 ... 어떻게 감히 자바 스크립트 파이썬을 호출합니까? –

+0

INSERT와 UNION을 혼용 할 수 없습니다. http://www.sqlite.org/lang_insert.html – Himanshu

답변

1

BEGIN TRANSACTIONCOMMIT 또는 ROLLBACK을 사용하면 한 번에 여러 건의 명세서를 작성할 수 있습니다.

http://www.sqlite.org/lang_transaction.html

+0

고맙습니다. 그것은 정말로 제한이 없습니까? 몇 천억 INSERT 및 업데이트를 말하고 있습니다 – ytrewq

+1

제한은 아마도 시스템 및 sqlite 구성에 따라 다릅니다. 참조 : http://stackoverflow.com/questions/7199305/sqlite-number-of-transactions-limit – Luke

+0

고맙습니다! Btw, UPDATE에도 적용됩니까? 그리고 UPDATE와 INSERT의 혼합? – ytrewq

관련 문제