数据更新操作,对单条记录,可以使用save或者是update两种方式。

save() 默认保存后会看到sql语句中更新了所有字段,而save的值是之前获取时候的字段值,是缓存下来的,并不一定最新,可能中途其他地方被更新过(在Django工程下的settings.py下将log设置为DEBUG,即可查看save和update分别执行了哪些SQL语句)

UPDATE pxb_sx2_test SET user_id = 335, catalog_id = 12558, level_id = 4, level_status = 0, position = 440, type = 2, add_time = '2016-09-14 17:44:07', update_time = '2016-09-14 17:53:17.077520' WHERE pxb_sx2_test.id = 175;

update 更新指定字段

UPDATE pxb_sx2_test SET position = 441 WHERE pxb_sx2_test.id = 175;

如果两个同时用,或者不同地方,但可能会同时更新的话会几率性出现更新了,但是数据库中值并没有改变。其实是update更新过后,正好save了过时的字段值,导致看起来没有更新。 django 1.5之后save可以加入参数只更新指定字段。

test.position = 441
test.save(update_fields=['position'])

性能对比

  • 从SQL的执行情况来看,使用upate是要优于save方式的;
  • 从使用情境上看,update更加适用于批量数据更新,而save则更适合当然也只适合做单条记录的数据更新操作了。

最新文章

  1. 阿里云slb和ucloud负载均衡ulb添加ssl证书将http服务https化的配置详解
  2. cookie,session,sessionid
  3. C语言中,宏和全局变量的区别是什么?
  4. 想学习一下CSS函数
  5. 玩转无线 — GNURADIO 简单运用
  6. 让MFC程序隐藏运行界面
  7. Linux Mint如何添加windows分享的网络打印机?
  8. Spring,Spring MVC及Spring Boot区别
  9. linux系统安全设置策略
  10. CentOS-7.3 设置静态 ip
  11. 第26月第29天 ffmpeg yasm
  12. c#数据库设计--1、概述
  13. jqgrid 单击行启用行编辑,切换行保存原编辑行
  14. Python -- Scrapy 命令行工具(command line tools)
  15. 【数组】Sort Colors
  16. 官方推荐的MySQL参数设置值
  17. dedecms 织梦本地调试 后台反映非常慢的处理办法
  18. 【RF库Collections测试】Dictionaries Should Be Equal
  19. MySQL 常用命令行
  20. memcached 学习笔记 4

热门文章

  1. django框架进阶-auth认证系统-长期维护
  2. HTTP请求方法及常见状态码
  3. [LC] 142. Linked List Cycle II
  4. AUTODESK 卸载工具,完美彻底卸载清除干净autodesk各种软件残留注册表和文件
  5. python&&Java&&jsp+servlet连接数据库报错收藏(sql server,mysql)
  6. cas单点登录打包时下载慢!
  7. get请求直接通过浏览器发请求传数组或者list到后台
  8. win10 安装VMware Workstation Pro提示无法在windows上运行
  9. Find a way (广度优先搜索)
  10. 人工智能VS投资者:股票市场上谁的胜算更高?