STATUS
там первая транзакция пытается сделать чтение с локом (шаг 2)
и отваливается из за того что другая транзакция делает инсерт
мой вопрос, почему именно дедлок, а не ожидание освобождения лока?????
SELECT ... FROM ... FOR UPDATE: устанавливает эксклюзивную блокировку следующего ключа на все считываемые индексные записи. INSERT INTO ... VALUES (...): устанавливает эксклюзивную блокировку на вставленную строку. Обратите внимание, что эта блокировка не является блокировкой следующего ключа и не предотвращает вставку другими пользователями записей в интервал перед вставленной строкой. Если произойдет ошибка дублирующегося ключа, оператор устанавливает блокировку совместного доступа на запись дублирующегося индекса.
Обсуждают сегодня