Mysql删除时警告:使用语句格式写入二进制日志的不安全语句
我的mysql delete语句很简单:Mysql删除时警告:使用语句格式写入二进制日志的不安全语句,mysql,Mysql,我的mysql delete语句很简单: DELETE FROM ts_template_size WHERE template_id in ( SELECT id FROM ts_template WHERE (id = 10153 OR style_type = 10153) ) 我得到一个警告: 使用语句格式写入二进制日志的不安全语句,因为BINLOG\u format=statement。在从另一个表中选择后写入具有自动增量列的表的语句是不安全的,因为检索行的
DELETE
FROM ts_template_size
WHERE template_id in
(
SELECT id
FROM ts_template
WHERE (id = 10153 OR style_type = 10153)
)
我得到一个警告:
使用语句格式写入二进制日志的不安全语句,因为BINLOG\u format=statement。在从另一个表中选择后写入具有自动增量列的表的语句是不安全的,因为检索行的顺序决定将写入哪些行(如果有)。此顺序无法预测,并且可能在主设备和从设备上有所不同
我在这里发现了另一个类似的问题:,但该问题中的语句是insert…select
。据我所知,问题发生在insert
情况下,因为select查询中的返回行在master和salve中的顺序可能不同,这可能导致插入时自动递增列的顺序不同
然而,我所做的是在表中删除,顺序不是master,为什么我仍然收到警告消息?您是否绝对确定是您的
delete
语句导致了警告?@Phil,是的,绝对确定。在ts\u template\u size
和ts\u template
表中都有自动递增列,您是否绝对确定是您的DELETE
语句导致了警告?@Phil,是的,绝对正确。在ts\u template\u size
和ts\u template
表中都有自动递增列