老师,帮我看下,我这里添加数据失败
来源:3-6 indexDB-游标
慕粉1905369247
2020-05-14 11:57:22
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var request=indexedDB.open('test',1)
request.onsuccess=function () {
console.log('数据库创建成功')
}
request.onupgradeneeded=function(){
console.log('版本升级了')
request.result.createObjectStore('test1',{keyPath:'id'})
}
var json=[
{
'id':1001,
'name':'aaa'
},{
'id':1002,
'name':'bbb'
},{
'id':1002,
'name':'bbb'
}
]
setTimeout(function(){
var transactionC=request.result.transaction('test1','readwrite')
var store=transactionC.objectStore('test1')
for(var i=0;i<json.length;i++){
var sus=store.add(json[i])
}
sus.onsuccess=function(){
console.log('添加数据成功 add')
}
sus.onerror=function(){
console.log('添加数据失败 add')
}
var sus2=store.put({
'id':1003,
'name':'ccc'
})
sus2.onsuccess=function(){
console.log('添加数据成功 put')
}
sus2.onerror=function(){
console.log('添加数据失败 put')
}
},300)
</script>
</body>
</html>
1回答
同学你好,因为设置主键为id, 而json数据中有两条数据id重复了,导致使用add方法无法添加数据,所以会出现失败
建议:调整其中的一个id就可以了。示例:
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题