晋江市建设招投标网站,今天的新闻联播内容,wordpress博客入侵,网站设计网站建设网站制作一张表存储历史数据#xff0c;最多存储HISTORY_TABLE_MAX_ROWS条数据#xff0c;当表中数据未达到HISTORY_TABLE_MAX_ROWS#xff0c;直接插入#xff1b;如果达到的话需要保证插入新数据的时候将最旧的数据删除 这里使用先update最新数据#xff0c;然后再重新update全表…一张表存储历史数据最多存储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