Estou um pouco irritado por causa de alguns avisos no mysql errorlog. Exemplo 1:
[Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.
The statement is unsafe because it uses a LIMIT clause.
This is unsafe because the set of rows included cannot be predicted.
Statement: UPDATE `table` SET `status` = '1' WHERE `ID` = '15800' LIMIT 1
Meu colega escreveu essas declarações e sempre me perguntei sobre o propósito de limitar uma declaração ao usar ID explícito. No entanto, este aviso também ocorre por não usar LIMIT.
Exemplo 2:
[Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.
The statement is unsafe because it uses a LIMIT clause.
This is unsafe because the set of rows included cannot be predicted.
Statement: DELETE FROM table WHERE id = 426888
O que pode estar errado neste caso?
Você tem LIMIT sem ORDER BY. Portanto, é sem sentido.
Os conjuntos não têm ordens implícitas sem ORDER BY. A mensagem de erro informa o seguinte:
Seu DELETE tem uma trigger ou algo do tipo com LIMIT?
O que me assusta nessa questão é que o MySQL não relata um problema no nível do gatilho no erro. Escrevi sobre esse problema antes, em 06 de janeiro de 2012: Alguém já se deparou com esse bug de quebra de replicação antes?
Escrevi naquela postagem anterior que o relatório de bug mostra que, em 10 de dezembro de 2010, houve um problema com problemas no nível do gatilho que não apareciam no log de erros, enquanto o problema relatado parecia ser o SQL original. No seu caso, você vê
DELETE FROM table WHERE id = 426888
e apenas coça a cabeça, perguntando " como no mundo uma instrução DELETE tão direta seria considerada insegura "?MORAL DA HISTÓRIA
A resposta de @gbn ajudou você a perceber que precisava olhar para o seu gatilho (+1 para @gbn). Eu queria revelar mais como o MySQL errou ao não registrar corretamente os erros do nível do gatilho.