Если эта пара столбцов (pt_tr_transaction_id, pt_pj_project_id)
уникальна, почему бы просто не поместить в эти два столбца УНИКАЛЬНЫЙ ИНДЕКС?Объедините это с параметром IGNORE_DUP_KEY
для этого индекса, и у вас будет индекс, который
- предотвращает вставку любых дубликатов
- не препятствует (исключение выброса), когдаобнаружен дубликат - он просто молча проглатывается
Эта ваша проверка склонна к сбою, поскольку вы ничего не делаете, чтобы два клиента не запускались одновременно;оба могут сначала проверить, существует ли эта строка, и получить обратно false
, а затем оба могут продолжить вставку этих значений.Ваша проверка не защищена от одновременного выполнения.