Django提供了update_or_create方法,执行数据修改时,判断要修改的数据是否已经存在:
- 如果存在当前数据,则修改
- 不存在当前数据则插入
注:PersonInfo是我定义的模型,PersonInfo包含id,name,age,hireDate4个字段。
数据表中不存在当前数据时,是插入数据:
>>> d=dict(id=21,name="测试工程师",age=26,hireDate="2020-06-30")
>>> PersonInfo.objects.update_or_create(**d)
(<PersonInfo: 测试工程师>, True)
数据表中存在当前数据时,修改/更新数据:
>>> d=dict(id=21,name="测试工程师",age=26,hireDate="2020-06-30")
>>> PersonInfo.objects.update_or_create(**d,defaults={'name':'数据分析师'})
(<PersonInfo: 数据分析师>, False)
在mysql workbench查询PersonInfo表,如下图所示,修改成功: