parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

G_Z 25.10.2016 16:47 / 25.10.2016 17:39

Убрав транзакцию вы перешли на работу с деревьями наугад.
Если в процессе отсоединения узлов, генерации новых связей и их вставкой произойдёт ошибка, или параллельный запрос изменит дерево — вы получите испорченное дерево.

Это не решение проблемы.

Очевидно, что в запросе происходи исключение, которое обрабатывается в try, что приводит к откату транзакции.
Странно, что вы его не видите, ведь его перехвата нет, только откат.

Типы таблиц у вас InnoDB?

Вдогонку: включите в MySQL логирование запросов и посмотрите что происходит.
Для версии 5.6+ так:
[mysqld]
…
general_log = on
general_log_file = /tmp/queries.log
log_output = 'file'
в конфигурационном файле MySQL или
SET global general_log = on;
SET global general_log_file='/tmp/queries.log';
SET global log_output = 'file';
в виде запросов.