Sé que esto ya está respondido, pero abordé este problema recientemente y se me ocurrió algo que funciona (y funciona bien haciendo una búsqueda única para cada fila insertada). Vea el ejemplo en este artículo:http://michaeljswart.com/2011/06/reforzar-las-reglas-comerciales-vs-evitar-desencadenantes-cuál-es-mejor/
(y no hace uso de una columna de identidad)