Você realmente tem chaves estrangeiras? Deve haver uma maneira de declarar essa combinação de table1.key-->table2.key unique.O que resultaria em um erro SQL regular, ao produzir um par de entradas já existente. Isto é o que eu gosto sobre as chaves estrangeiras. É muito limpo, porque a inteligência nas entradas (não) permitidas permanece no nível do banco de dados.
Você tem uma tabela A_B contendo atribuições, não é? A.id 88 pertence a B.id 99... etc.?
E você planeja inserir UM registro A combinado com n registros B? Por que não - se os novos valores forem A =99 e B:10, 11, 12, 17, 18, 20
SELECT b_id
FROM A_B
WHERE a_id = 99
AND b_id IN (10, 11, 12, 17, 18, 20);
Isso resultará em uma lista de b_ids que você não deve inserir novamente ... OU um resultado vazio (todas as entradas são novas).