用sqlite插入多条数据报错“android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: invento

报错信息

{
	"code": -1404,
	"message": "android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: inventory_list.inventProperNum (code 1555 SQLITE_CONSTRAINT_PRIMARYKEY),http://ask.dcloud.net.cn/article/282"
}

我建表时把inventProperNum设为主键,但我这个字段的数据是重复的,而主键是唯一的不能重复

 因为第一条数据逐渐已经存在且数据重复所以就报错不能继续往下插入了,所以我查表时只出现了一条数据,一开始我还以为是for循环出了问题,后来用map也一样,最后仔细看表才发现我把重复数据的字段设置为了主键

把主键改为其他字段然后重新插入就成功了。

插入多条数据

function intoInventoryTable(self, data, clear) {
	// 1.清空表中的数据
	if (clear) {
		console.log(clear)
		clearTable(self, 'inventory_list')
	}
	console.log(data)
	// 2.添加数据
	data.map(item => {
		let datas = `'${item.inventProperNum}','${item.properId}','${item.propertyName}','${item.propertySort}','${item.date}','${item.addWay}','${item.specType}','${item.useDepartment}','${item.leaveWhere}','${item.counts}','${item.checkCounts}','${item.checkResult}'`;
		let condition = "'inventProperNum', 'properId', 'propertyName', 'propertySort', 'date', 'addWay', 'specType', 'useDepartment', 'leaveWhere', 'counts', 'checkCounts', 'checkResult'";
		let dbtable = 'inventory_list'
		let sqlCode = `REPLACE INTO ${dbtable} (${condition}) VALUES (${datas})`
		plus.sqlite.executeSql({
			name: 'PDASystem',
			sql: sqlCode,
			success(e) {
				console.log(e)
				plus.sqlite.selectSql({
					name: 'PDASystem', // 数据库名称
					sql: `select * from 'inventory_list'`,
					success(res) {
						console.log(res)
					},
					fail(e) {
						console.log(e,'error')
					}
				})
			},
			fail(e) {
				console.log(e,'error')
			}
		})
	})
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值