请问mysql事务执行查询汇总然后删除所有数据过程中有数据插入会有影响吗?
一个事务做的操作如下,查询所有数据,然后汇总同日期数据求和,然后清空表,再把汇总数据放回表,在这个过程中,会不会有数据刚好在查询完成,删除还没进行的时候插入,结果在没被查...
一个事务做的操作如下,查询所有数据,然后汇总同日期数据求和,然后清空表,再把汇总数据放回表,在这个过程中,会不会有数据刚好在查询完成,删除还没进行的时候插入,结果在没被查询汇总到的情况下被删掉。
展开
2个回答
展开全部
...........为什么要有这样的骚操作?汇总同日期的,你就不能用条件< 日期字段 between 日期1 and 日期2 >,,取出结果后放入汇总表?删除的时候,,你也可以使用相同条件去删除,,,,,,,,,,很难理解你想做的操作,没有意义啊,平白的消耗系统资源,,,,而且,,delete 语句是逐条执行的...,,很批量大数据删除的时候,,很慢矣....至于使用 truncate {tablename};截断表,,会丢数据的,,这个操作默认是不能回滚的..
更多追问追答
追问
做一个流程试验的时候,后面具体处理还没定,暂时只是尝试汇总数据试验一下,前面数据是不定时来,数据的日期也不确定,需要定时自动汇总,过程中想到会不会遇到这种情况就想问一下。
追答
如果是这样,,你还是用 RENAME TABLE tbl_name TO new_tbl_name;先把原表改名,,,然后 create table tbl_name like new tbl_name; 重建一张表,,,这个操作是原子性的,在你改名时,新数据不会插入.
1:改名
2:新建同名同结构表
3:去改名表里做你想做的事件,例如汇总后数据,插入新建的表
4:drop 改名表
------------------------------------
维护数据完整性,,修改一下步骤
1:CREATE TABLE new_table like old_table; -- 先建同结构数据表
2:RENAME TABLE old_table TO backup_table, new_table TO old_table; -- 从左到右执行的,原子性,先改名了旧数据表,然后新建的表,再改为原来的旧表名称...
3: select ****** from backup_table;-- 在备份表中语句操作
4:处理过数据后,,drop table backup_table; -- 直接删除备份出来的表,,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询