1. создаем временную таблицу temp с тем же набором полей, что и основная
2. делаем запись в нее (можно несколько)
3. сравниваем 2 SELECT'а основной и временной. По факту совпадений выдаем сообщение о дубликатах.
4. выполняем запрос INSERT INTO fio SELECT * FROM temp WHERE NOT EXISTS (SELECT DISTINCT * FROM fio WHERE f='iva' AND i='iva' AND o='iva'); копирующий все записи, за исключением дубликатов (предикат DISTINCT) и уже найденых в рабочей базе
5. таблицу temp удаляем.
зы. предыдущий запрос проверял на Oracle RDB/VMS на работе - прокатило
ззы. сейчас опять теоретически, но вроде все правильно
