mysql – web2py检查数据库插入或更新是否存在
作者:互联网
我正在尝试执行检查,以便在插入记录之前查看记录是否存在,这样我就不会收到错误.
如果它存在,我将更新一个字段.
mydb(mydb.myitems.itemNumber==int(row)).update(oldImageName=fileName) or
mydb.myitems.insert(itemNumber=int(row),oldImageName=fileName)
如果我尝试更新不存在的记录,那么它应该抛出1或者除了0之外的东西.但是在上面的情况下,它总是抛出0,所以插入不断发生.
这是为什么?
谢谢!
更新:
添加型号:
mydb.define_table('myitems',
Field('itemNumber', 'id',notnull=True,unique=True),
Field('oldImageName', 'string')
解决方法:
If i try to update a record that does not exist, then it should throw a 1 or something aside from 0.
如果您尝试更新不存在的记录,.update()将返回None,因此插入将发生.如果存在匹配的记录,.update()将返回更新的记录数.
无论如何,你应该做:
mydb.myitems.update_or_insert(mydb.myitems.itemNumber == int(row),
oldImageName=filename)
或者:
mydb.myitems.update_or_insert(dict(itemNumber == int(row)),
oldImageName=filename)
update_or_insert的第一个参数是_key,它可以是DAL查询,也可以是字段名称为键的字典.
标签:web2py,mysql,insert 来源: https://codeday.me/bug/20190725/1531672.html