2009-03-21 5 views
8

웹킷 (iPhone 및 Safari 이상)은 SQLite를 통해 HTML5의 데이터베이스 저장소를 지원합니다.Webkit의 HTML5 데이터베이스 저장소에서 삽입 ID 가져 오기

다음 트랜잭션의 삽입 ID (데이터베이스에 자동 증가 필드 'id'가 있음)를 얻는 최선의 방법을 찾으려고합니다. 이 같은

db.transaction(function(tx) { 
    tx.executeSql("INSERT INTO teams (name) VALUES (?)", [$('#team_name').val()]); 
}); 

답변

16

코드 샘플 애플의 문서에서, 나는 그것이 아이폰과 사파리, 그리고 아마도 웹킷에서 작동 알고있다. resultSet.insertId을 사용하여 resultSet 응답 개체에서 삽입 ID를 가져올 수 있습니다. 또한 예를 들어 resultSet 개체의 rowsAffected 속성을 사용하여 업데이트 쿼리의 영향을받는 행 수를 얻을 수 있습니다.

db.transaction(
function (transaction) { 
    transaction.executeSql('INSERT into tbl_a (name) VALUES (?);', 
     [ document.getElementById('nameElt').innerHTML ], 
     function (transaction, resultSet) { 
      if (!resultSet.rowsAffected) { 
       // Previous insert failed. Bail. 
       alert('No rows affected!'); 
       return false; 
      } 
      alert('insert ID was '+resultSet.insertId); 
      transaction.executeSql('INSERT into tbl_b (name_id, color) VALUES (?, ?);', 
       [ resultSet.insertId, 
        document.getElementById('colorElt').innerHTML ], 
       nullDataHandler, errorHandler); 
     }, errorHandler); 
}, transactionErrorCallback, proveIt); 

Apple's HTML5 Database Documentation

+0

덕분에, 그게 내가 필요한거야! :-D – ceejayoz

+0

다행스럽게 도울 수 있어요! –

0

뭔가가 작동한다고 아래

SELECT last_insert_rowid();