0
以下工作代碼用於設置我的問題:更新在IndexedDB的單場
myRequest = indexedDB.deleteDatabase('myDatabase')
myRequest.onsuccess \t = function() {
\t var myRequest
\t
\t myRequest = indexedDB.open('myDatabase')
\t myRequest.onupgradeneeded = function(response) {
\t \t var myDatabase
\t \t \t ,myObjectStore
\t \t
\t \t myDatabase = response.target.result
\t \t myObjectStore = myDatabase.createObjectStore('myData',{autoIncrement:true})
\t }
\t myRequest.onerror = function(response) {
\t \t debugger
\t }
\t myRequest.onsuccess = function(response) {
\t \t var myTransaction
\t \t \t ,myObjectStore
\t \t \t ,myRequest
\t \t \t ,obj = {}
\t \t window.myDatabase = response.target.result
\t \t myTransaction = myDatabase.transaction(['myData'],'readwrite')
\t \t myObjectStore = myTransaction.objectStore('myData')
\t \t obj.field1 = 'a'
\t \t obj.field2 = 'b'
\t \t myObjectStore.add(obj)
\t }
}
問:我怎麼說相當於:
update myData set field2='c' where key=1
我是否必須在.put語句中提供field1和field2?
謝謝約書亞。你的回答真的幫了我。我注意到的一件事是,在put語句中不需要主鍵,因爲它在get結果中提供。 –
如果你把()沒有一個鍵,而商店有autoIncrement設置,你會得到一個新的記錄,不會覆蓋以前的記錄....除非你使用內嵌鍵(即對象存儲有keyPath指定,你的例子中沒有。) –