delete from myTable
where id not in
(select min(id)
from myTable
group by A, B)
es decir, la selección entre paréntesis devuelve la primera identificación para cada agrupación de A y B; eliminar todos los ID que no están en este conjunto eliminará todas las apariciones de una combinación A-más-B que son "posteriores" a su primera aparición.
EDITAR :esta sintaxis parece ser problemática:consulte el informe de error:
http://bugs.mysql.com/bug.php?id=5037
Una posible solución es hacer esto:
delete from myTable
where id not in
(
select minid from
(select min(id) as minid from myTable group by A, B) as newtable
)