通知:欢迎光临,有建议或发现bug,点此留言
首页> 数据库> mysql执行update更新未更改的数据的问题探讨

mysql执行update更新未更改的数据的问题探讨

2017-11-24 08:55:46 阅读:1114
简介在一次数据表操作的时候,发现更新与数据表中一样的数据的时候,mysql竟然返回影响的行数为0行。然而程序的逻辑是依据影响的行数来判断是否执行成功的,然后就成功入坑了。而SQL SERVER会正常返回1行。
    C++性能强大,而Python开发高效。C++与Python强强联合,一起征战世界!
    Python技术网
Python技术网
是C++技术网的官方兄弟网站,安全可靠,一起学习C++和Python吧。告诉你一个好消息:打开支付宝,搜索【514124385】可领红包哦,最高99元!!!,每天都可领。
    在数据库中更新数据是非常常见的SQL应用场景,比如更新一个状态。在实时接收到设备的状态时,我们会将设备的状态更新到数据库中,以便浏览器端可以浏览到最新的设备状态。设备定时上报状态,程序也就定时更新设备的状态。
    按照通常的思路,我们就把设备的状态不断的更新到数据库的对应的数据表的状态字段。定时上报的状态,当然可以是一样的。比如设备空闲,在一个小时内可能都是空闲的,所以在上报状态时状态是空闲的。所以在多次更新设备状态的时候,我们都会直接将状态更新到数据表里就可以了。
    我们的想法是,不管数据表存储的状态是不是当前状态,更新进去都没有问题。如果不一样,就更改了状态。如果一样,更新的还是原来的数值而已。在程序实现上,也简单直接。
    但是在我实际测试的时候,却发现了一个奇怪的现象。在更新状态时,经常出现更新失败的情况。经过一番的检查,最后直接手动测试。发现只要是要更新的状态与数据库存储的状态相同,更新就会失败,而如果状态不同,则成功。
    失败和成功的定义是这样的:检测是否成功的标准就是数
登陆系统,查看更多
文章标题:mysql执行update更新未更改的数据的问题探讨
文章地址:http://www.cjjjs.com/article/2017112218176938
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:mysql执行update更新未更改的数据的问题探讨

阅读排行

  • 程序员必备软件:mysql免安装版本精简版5.5.9

    精简版极大降低了数据库文件的大小,可以方便集打包到安装包中,免安装版本mysql可以不需要用户额外手动安装,程序需要的时候,可以内部直接启动mysql数据库服务来操作数据库,非常的方便。精简版经过实际测试运行,安全稳定,但不保证在特别条件下依然正常运行,毕竟精简掉的部分是无法运行的,但是绝大部分的数据库服务的基本功能部分都保留着。

  • 基于时间的 SQL注入(基于时间的SQL盲注)攻击与防御的研究

    SQL注入、SQL盲注、基于时间的SQL盲注是经常会遇见的网络攻击方法,通过SQL的执行情况,来推测数据库的情况,进而攻击服务器。本文非常全面的介绍了这方面的知识。不过只是理论上的,需要实践来加深理解。

  • VS中无法保存mdf数据库文件数据表的解决方法

    mdf文件就是MSSQL Server的数据库文件,此文件用于存储数据库中的数据。对应的一个文件就是日志文件,即ldf文件。ldf中的l代表了log(日志)的意思,也就是日志文件,用于记录数据库操作记录。用于恢复数据库的数据的。

  • 在SQL server数据库与VS2010中打开.mdf文件的方法

    .mdf(sql)数据库文件的在sql数据库中和VS中的打开方式

  • mysql:Cant't create/write to file解决办法

    今天使用Navicat刷新mysql数据表时提示: Cant't create/write to file '/tmp/#sql_17b0_0.MYI'(Errcode:13)。本文给出了解决办法。

猜您感兴趣