zoukankan      html  css  js  c++  java
  • Django中update和save()同时作用

    数据更新操作,对单条记录,可以使用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则更适合当然也只适合做单条记录的数据更新操作了。
  • 相关阅读:
    错删表空间的恢复步骤
    如何使用PL/SQL进行远程数据库连接
    Oracle基础笔记
    PL/SQL如何导入dmp文件
    oracle表的基本操作
    sql里面的分页
    truncate table语句和delete table语句的区别
    c++ 时间类型详解 time_t[转]
    C++ 容器:顺序性容器、关联式容器和容器适配器
    XCode 快捷键
  • 原文地址:https://www.cnblogs.com/jiumo/p/12126363.html
Copyright © 2011-2022 走看看