mysql通过定时器定时拷贝数据的功能 通过定时器,定时从一张表内拷贝数据到另一张表,现在碰到的问题是,因为定时器执行存储过程不是线性的,即:不等待存储过程执行结束再继续下一次操作,而是调用存储过程后马上计时,等待时间段后,再调一个线程执行这个存储过程。这样造成拷贝数据冲突,有没什么好办法可以解决的,谢谢.小弟手上只剩下20分了,不好意思。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1。是不是定时器设的间隔过小,导致上次还没完成,下次就要开始。2。是否存储过程里面的设计有问题?比如,已经拷贝过的且没有被update过的记录又做了一次拷贝?可否考虑拷贝之前对没变的数据做下过滤?比如原表结构里面加上last_modify_time这样的字段,凡是拷贝操作时间>上次记录变化时间的记录就表示拷贝过且没有变化,这次就不拷贝了?个人愚见哈 比如第一次触发时,我在拷贝id:1--10000,还在拷贝中这时候时间过了3秒钟,定时器又触发了,又执行这一次操作,正确的就是从10001开始拷贝,但由于第一次未未完成,导致第二次触发的起始ID不正常(目标表内获取ID,但这个ID可能只到5000) 这就是你的定时器设计的问题了。应该wait到上一次拷贝完成时给出的信号开始计时。 为什么不直接在定时任务中 insert into 另一张表 select * from 一张表 对的,就是这种情况,要怎么处理,有没办法让定时器wait到上一次拷贝完成后给出的信号开始计时 小菜,请教个SQL查询问题 想学习一下数据库,大家认为选用哪个好? Mysql中的like查询问题 mysql语句查询错误 关于mysql同步的问题 关于mysql数据库编码转换? 哪有下Mysql的啊? 如何安装postgresql在linux下? 求一条Update语句 MYSQL 内存占用率居高不下 问一个简单or弱智的SQL语句 询问个insert的SQL语句
2。是否存储过程里面的设计有问题?比如,已经拷贝过的且没有被update过的记录又做了一次拷贝?可否考虑拷贝之前对没变的数据做下过滤?比如原表结构里面加上last_modify_time这样的字段,凡是拷贝操作时间>上次记录变化时间的记录就表示拷贝过且没有变化,这次就不拷贝了?个人愚见哈
这时候时间过了3秒钟,定时器又触发了,又执行这一次操作,正确的就是从10001开始拷贝,但由于第一次未未完成,导致第二次触发的起始ID不正常(目标表内获取ID,但这个ID可能只到5000)
这就是你的定时器设计的问题了。应该wait到上一次拷贝完成时给出的信号开始计时。
对的,就是这种情况,要怎么处理,有没办法让定时器wait到上一次拷贝完成后给出的信号开始计时