Транзакция DELETE. Недостающая строка в запросе SELECT. Открытая транзакция все еще блокирует «удаленные» строки только для одного соединения? [MariaDb 10.3.11] - PullRequest
0 голосов
/ 01 мая 2020

Ниже кода:

START TRANSACTION;
    DELETE FROM invoice_mails WHERE consignment_id=1 AND status='READY';
    DELETE FROM consignment_invoices WHERE consignment_id=1;
    DELETE FROM consignments WHERE consignment_id=1;
COMMIT;

выдает ошибку ограничения внешнего ключа. Ожидается эта ошибка.

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

Cannot delete or update a parent row: a foreign key constraint fails (`consignment_integrator`.`invoice_mails`, CONSTRAINT `consignments_consignment_id` FOREIGN KEY (`consignment_id`) REFERENCES `consignments` (`consignment_id`))'"

Проблема в том, что запрос выполняется в том же соединении с БД:

Select * from consignment_invoices WHERE consignment_id=1;

это не так возвращаемая строка.

Тот же выбор, выполненный в другом соединении, возвращает ожидаемую строку.

Я не могу найти решение. Открытая транзакция все еще блокирует «удаленные» строки только для одного соединения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...