В основном у меня есть таблица с столбцом первичного ключа с двумя полями (memberid, messageid), и у меня есть сохраненная процедура, которая вставляет новую строку в эту таблицу.
Прямо сейчас я проверяю, существует ли строка с PK, и вставляю, если нет, но я уже сталкивался с ситуацией, когда строка была вставлена другим процессом сразу после проверки и перед фактической вставкой, поэтому я Я думаю об альтернативном способе.
Я НЕ хочу использовать транзакции по соображениям производительности, поэтому я подумал о том, чтобы включить INSERT в try-catch и вообще пропустить проверку. Если строка уже существует, вставка завершится ошибкой, но она будет отключена "catch", что нормально.
У меня вопрос - выбросить ошибку и отловить ее - дорогостоящая операция?