Опубликовано Serguei_Tarassov в пт, 27/05/2011 - 15:58.
Есть 2 основных решения:
проверять ДО вставки
проверять ПОСЛЕ вставки
Проверку во время операции исключаем, т.к. она ухудшит скорость пакетной вставки.
Проверка до вставки - это, например, запрос к источнику данных, в котором вы исключаете дубликаты
SELECT *
FROM src_table T
INNER JOIN
( SELECT count(id), id
FROM src_table
HAVING count(id) = 1
GROUP BY id
) T2
ON T.id = T2.id
Проверка после вставки (сама вставка может оказаться более быстрой): нужно просто удалить временно ключ (ограничение целостности или уникальный индекс), а после вставки проанализировать записи, исключить дубликаты и воссоздать ключ.
Два решения
Есть 2 основных решения:
Проверку во время операции исключаем, т.к. она ухудшит скорость пакетной вставки.
Проверка до вставки - это, например, запрос к источнику данных, в котором вы исключаете дубликаты
SELECT * FROM src_table T INNER JOIN ( SELECT count(id), id FROM src_table HAVING count(id) = 1 GROUP BY id ) T2 ON T.id = T2.idПроверка после вставки (сама вставка может оказаться более быстрой): нужно просто удалить временно ключ (ограничение целостности или уникальный индекс), а после вставки проанализировать записи, исключить дубликаты и воссоздать ключ.