一张表存储历史数据,最多存储HISTORY_TABLE_MAX_ROWS条数据,当表中数据未达到HISTORY_TABLE_MAX_ROWS,直接插入;如果达到的话需要保证插入新数据的时候将最旧的数据删除
这里使用先update最新数据,然后再重新update全表的id号-1吗,,这样就能实现这个功能了。

def update_history_db(conn, cur, param , HISTORY_TABLE_MAX_ROWS, table_name):# 注意,这里的conn和cur不是函数内部分配的select_sql = "SELECT id from %s order by id desc limit 1" % table_nameselect_sql_id = "SELECT id from %s order by id limit 1" % table_nameinsert_sql = "INSERT into %s values(0, %s)" % (table_name, param)update_sql_id = "UPDATE %s SET id = id - 1 " % table_nametry:# 首先判断一下表单行数有没有超过阈值result = SELECT(conn, cur, select_sql)rows = 0for row in result:rows = row[0]if rows < HISTORY_TABLE_MAX_ROWS:INSERT(conn, cur, insert_sql)else:# 首先获取最小的idresult = SELECT(conn, cur, select_sql_id)min_id = 1for row in result:min_id = row[0]update_sql = "UPDATE %s SET id = %s, param = %s where id = %s" % (table_name, (HISTORY_TABLE_MAX_ROWS + 1), param)UPDATE(conn, cur, update_sql)# 然后更新id自减1UPDATE(conn, cur, update_sql_id)except BaseException:logging.critical("Function: update_all_nums_history_db stop ...")return

python脚本:向表中插入新数据,删除表中最旧的数据相关推荐

  1. linux中sed -i命令修改文件内容、在文件中插入行、删除文件中删除行

    文章目录 0.sed -i与sed 1.修改文件内容 2.在文件中插入行 3.在文件中删除行 4.使用find查找文件,并用 | xargs传输文件名给sed命令 0.sed -i与sed sed - ...

  2. 使用phpexcel在excel文件中插入新的数据

    使用phpexcel在excel文件中插入新的数据 摘要:在开发中,我们经常需要读写excel表格.今天开发了一下读excel表格,然后使用 insertNewRowBefore 方法插入新行,生成新 ...

  3. [翻译]在GridView中插入新记录

    原文地址:http://www.dotnetbips.com/articles/c1e0ca90-5f5d-47aa-a739-492b562e810a.aspx [原文源码下载] [译者改后源码下载 ...

  4. java字符插入_java在原字符中插入新字符或字符串实例

    插入字符代码: public class Test { /**在原字符中插入新字符**/ public static void main(String[] args){ StringBuffer sb ...

  5. 【es6】用map对数组对象中插入新的属性

    问题: 用map对数组对象中插入新的属性 举例子 在arr中查看有没有cat,有就用原先的,没有就加默认cat:0,同样后面也可以拼接father:'' let arr = [{name:'hong' ...

  6. mysql删除关键字记录,在MySQL删除表语句中,下列选项用于删除表的结构和记录数据全部,并且不能恢复的是( )关键字。...

    在MySQL删除表语句中,下列选项用于删除表的结构和记录数据全部,并且不能恢复的是( )关键字. 更多相关问题 离子选择性电极用标准加入法进行定量分析时,对加入的标准溶液要求体积要( ),浓度要( ) ...

  7. 钢琴键盘excel_如何通过键盘在Excel中插入新行?

    钢琴键盘excel If you are a keyboard ninja, then you hate having to move your hands from the keyboard for ...

  8. python对多个文件统一重命名删除名中部分字符

    python对多个文件统一重命名删除名中部分字符 ** 因为有的时候网上找到的压缩包解压后的文件很乱,文件名太长,多了很多不需要的字,不方便查看, 出于想快捷删除文件名中部分字的简单需求,很久前编写了 ...

  9. JS中根据指定值删除数组中的元素

    JS中根据指定值删除数组中的元素 原生js 如果想删除数组,有一个函数 splice() ~~ 删除元素,并向数组添加新元素. splice是根据数组内的下标 也就是索引来 删除元素的比如: var ...

最新文章

  1. 商汤联手华科:提出文字检测模型GNNets,新颖模块可解决几何分布难题
  2. Sublime配置C和C++编译运行环境
  3. WebBenchmark动态测试Webapi
  4. 姑娘,你为什么要编程?
  5. [转]ASP.NET实用技巧
  6. 命令行重启Oracle数据库
  7. java 可见_Java可见性机制的原理
  8. 自己动手写Docker系列 -- 5.3实现logs命令查看容器日志
  9. hex2bin 64bit
  10. Ubuntu安装OpenCV
  11. 周末不知道学什么?这份 Android 优秀技术文章清单请收下
  12. MySql Undo日志 - 对聚簇索引进行CUD操作
  13. zoj 2839 Find the Sequences(数学题)
  14. 【面试】TCP、UDP、Socket、HTTP网络编程面试题
  15. Abaqus2022功能介绍
  16. 网购平台用户行为分析
  17. Zookeeper安装部署调试命令
  18. oracle共享函数,oracle常用函数及示例分享
  19. Matlab中lsim函数使用
  20. html雪花飘落计划书,5.html5 作业 canvas 雪花飘落

热门文章

  1. oracle数据库没有选项,创建oracle数据库时,出现ORA-00922: 选项缺失或无效
  2. python映射实体类_【HIBERNATE框架开发之二】第一个HIBERNATE-ANNONATION项目(采用@ENTITY、@ID直接映射实体类)...
  3. plsql 设置鼠标行执行_如何制作键盘鼠标产品质量合格证
  4. ES6 iterator 迭代器
  5. js操作json方法总结
  6. React之函数中的this指向
  7. meta标签的常见用法
  8. C# -- RSA加密与解密
  9. Java实现回形数,只利用数组、循环和if-else语句
  10. django组件 分页器