Ниже кода:
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;
это не так возвращаемая строка.
Тот же выбор, выполненный в другом соединении, возвращает ожидаемую строку.
Я не могу найти решение. Открытая транзакция все еще блокирует «удаленные» строки только для одного соединения?