数据库
首页 > 数据库> > mysql – web2py检查数据库插入或更新是否存在

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