为什么这对mysql复制不安全

为什么这对mysql复制不安全,mysql,replication,Mysql,Replication,此声明中有什么不安全?我没有插入任何内容,只是更新。实际上,我甚至没有选择任何将用于更新的内容 我曾尝试使用左连接重写,但它仍然抱怨。我还认为可能是updated_ts=now造成的,并已将其设置为固定时间,但仍然是相同的警告 服务器是Oracle的5.5.27 在从另一个表中选择后写入具有自动增量列的表的语句是不安全的,因为检索行的顺序决定是否写入任何行。此顺序无法预测,可能因主设备和从设备而异 我什么也没做,只是复制粘贴了警告信息中的解释 因此,似乎更新被视为写入表如果向右滚动,您将在警告消

此声明中有什么不安全?我没有插入任何内容,只是更新。实际上,我甚至没有选择任何将用于更新的内容

我曾尝试使用左连接重写,但它仍然抱怨。我还认为可能是updated_ts=now造成的,并已将其设置为固定时间,但仍然是相同的警告

服务器是Oracle的5.5.27

在从另一个表中选择后写入具有自动增量列的表的语句是不安全的,因为检索行的顺序决定是否写入任何行。此顺序无法预测,可能因主设备和从设备而异

我什么也没做,只是复制粘贴了警告信息中的解释


因此,似乎更新被视为写入表

如果向右滚动,您将在警告消息中看到解释。但我没有插入select的内容,它只是用作复选框是,但在我的情况下,这种解释没有任何意义。@Aleksandar Ivanisevic:,mysql似乎没有对您选择的内容进行任何深入分析。
121214 11:54:30 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave. Statement: update db_ds_pax p
        set p.mbp_id = 8861912, updated_ts = now()
        where p.flight_id = 2506912 
        and p.logically_deleted = 0
        and (
            exists (
                    select * from db_bkg_passenger bkgp 
                    where bkgp.bkg_pax_id = p.bkg_pax_id
                    and bkgp.ticket_num = '2202326623256'
                    and bkgp.logically_deleted = 0 )
            or exists (
                    select * from db_dcs_pax dcsp 
                    where dcsp.dcs_pax_id = p.dcs_pax_id
                    and dcsp.ticket_num = '2202326623256'
                    and dcsp.logically_deleted = 0 ))