MySQL事件调度器

MySQL事件调度器,mysql,mysql-event,Mysql,Mysql Event,我设置了1个mysql事件,每12小时将带有0标志的所有数据从一个表传输到另一个表(表2),然后更新查询,将传输后的标志设置为1插入和更新在一个事件进程上 我的问题是,表2上所有传输的数据都有重复数据,看起来好像2事件正在运行 有什么想法吗 以下是我的活动代码: DELIMITER | CREATE EVENT IF NOT EXISTS event_transfer ON SCHEDULE EVERY 12 HOUR STARTS '2018-08-10

我设置了1个mysql事件,每12小时将带有
0
标志的所有数据从一个表传输到另一个表(表2),然后更新查询,将传输后的标志设置为
1
<代码>插入和
更新
在一个事件进程上

我的问题是,表2上所有传输的数据都有重复数据,看起来好像2事件正在运行

有什么想法吗

以下是我的活动代码: DELIMITER | CREATE EVENT IF NOT EXISTS event_transfer ON SCHEDULE EVERY 12 HOUR STARTS '2018-08-10 06:00:00' ON COMPLETION NOT PRESERVE ENABLE

DO

BEGIN


INSERT INTO dbsample.tblmirror (Column1, Column2, Column3)
       (SELECT Column1, Column2, Column3
               FROM tblmaster
                    WHERE is_transfer = 0);

UPDATE dbsample.tblmaster
   SET is_transfer = 1
       WHERE is_transfer = 0;


END |

DELIMITER;
引用鲑鱼:

没有重复的事件,简单的代码,没有触发器-我怀疑问题就在这里

鲑鱼就在这里,如果你知道还有什么别的工作可以做这件事,那就好了。
但是,您也可以通过另一种方式避免此问题。既然你不想有重复的,有一种方法可以检测重复的,对吗?不管怎样,这3列的组合必须是唯一的,或者其他什么,然后在数据库中指出这一点

在列上创建唯一索引(或主键),使每一行都是唯一的

这样,你就不用简单的插入了,你就不用再重复了

引述:

如果使用IGNORE修饰符,则会忽略执行INSERT语句时发生的错误。例如,在不忽略的情况下,复制表中现有唯一索引或主键值的行将导致重复键错误,语句将中止。使用IGNORE时,将丢弃该行,并且不会发生错误。忽略的错误可能会生成警告,但重复的键错误不会


当您显示事件时,是否只有1个?请发布您的事件代码。是的,我已经检查了它,只有1个。然后发布所有代码并创建表语句。我已经更新了我的发布