Bulk Update alterando colunas que fazem parte de uma Unique Constraint

Olá!

Tenho uma tabela que possui uma Unique Constraint composta por 3 colunas:ID1, ID2 e Sequencia

Tenho, por exemplo 3 registros nessa coluna, conforme abaixo

ID1 | ID2 | Sequencia
1   | 0  | 0
1   | 0  | 1
1   | 0  | 2 

Preciso fazer uma acão que incremente a sequencia de todos os registros em 1, para deixar a tabela da seguinte forma:

ID1 | ID2 | Sequencia
1   | 0  | 1
1   | 0  | 2
1   | 0  | 3 

então executo o comando update: Update tabela set sequencia = sequencia + 1 where ID1 = 1 and ID2 = 0

porém recebo um erro de Duplicate Entry para a combinação ID1=1, ID2=0, Sequencia=1. Ou seja ele me gera o erro logo no update da primeira linha… Porém no fim do comando, não haverão registros duplicados, como faço para que a verificação do erro só ocorra no final do comando?

(estou usando MySql)

Abs

Olá felipe_gdr,
Não conheço o contexto que está trabalhando, mas se tiver como alterar o banco talvez seja mais fácil retirar a constraint e executar o comando, depois criar a constraint novamente.

Entendi…

na verdade esse é um comando executado por um aplicativo web, que usa JPA. Logo não queria depender de ativar/desativar constraints, pois cada banco tem uma sintaxe diferente para isso, então eu ficaria meio amarrado.

Acho que o jeito vai ser tirar essa constraint de vez.

Imaginei que seria somente um comando para rodar uma vez afim de “organizar” os dados, mas se é uma regra aplicada pelo sistema, realmente não faz sentido deletar e criar a constraint a toda execução desta regra.

Vale a pena reavaliar a constraint, se tem alguma outra forma de deixar o banco consistente modificando a mesma.
Como sugestão, os campos ID1 e ID2 podem ser UNIQUE sem o campo Sequencia na constraint e tratar isso programaticamente, talvez resolva teu problema.