Запускаю два процесса по очереди, в обоих стоит блокировка таблицы, в первом слип на 60 секунд, во втором - уже нет. Второй ждет секунд 30 и выполняется полностью, вносит запись в заблокированную таблицу, пока первый процесс спит, в итоге первичный ключ перескакивает одно значение.
вторая транзакция ждет первую, но не может дождаться
Как это решать?
Что PK перескакивает значения -- это воообще не проблема, и никак не связано с блокировками. Если ты конечно новые ID не сам генерируешь через (select max(id) ...)
Обсуждают сегодня