170 похожих чатов

Всем привет Подскажите как работать с транзакциями в Eloquent\Model ?

Нужно создать модель Order , заполнить ее данными Далее нужно заполнить данными связанную модель OrderProducts И вот на этом этапе могут возникать ошибки и нужно чтоб вся цепочка откатилась Я так понимаю что при работе с моделями DB::rollBack() не работает?

13 ответов

5 просмотров

за транзакции учти что если у тебя длительная операция то таблица над которой идет транзакция будет недоступна для других запросов юзеров и будет плевать 500-е с текстом SQL STATE 0200

Eugene-Oleynikov Автор вопроса
FFx0001
за транзакции учти что если у тебя длительная опер...

так что лучше самому в catch отлавливать ошибки и вручную удалять такой заказ?

Eugene Oleynikov
так что лучше самому в catch отлавливать ошибки и ...

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

FFx0001
за транзакции учти что если у тебя длительная опер...

это с какой стати она будет не доступна?

DB::transaction(function() { // вот тут творишь все что нужно и если будет ошибка, rollback будет автоматом });

Egor Gruzdev
это с какой стати она будет не доступна?

Наверно инфраструктура наверно так настроена)) В один поток всё)

Egor Gruzdev
это с какой стати она будет не доступна?

если там какая нибудь продолжительная логика при которой в начале открывается транзакция и коммитится под конец то второй пользователь получит ворох исключений если попытается выполнить над теми же таблицами операции вставки или что то еще пока транзакция не завершилась

FFx0001
если там какая нибудь продолжительная логика при к...

все будет хорошо, не будет ворохов или еще чего то

ну были такие траблы в проекте один человек добавилтранзакций потом попытка вызвать этот же функционал другим пользователем сыпала ошибки от sql - да там бд в однопотоке и длительный импорт из файла

FFx0001
ну были такие траблы в проекте один человек добави...

если бездумно использовать lockForUpdate() то да можно огрести проблем, но в данном случае речи о сторонних сервисах не шло, все рамках дозволенного, потому проблем не должно быть

FFx0001
ну были такие траблы в проекте один человек добави...

То есть если хотя бы одна запись косячная, то весь импорт откатывался?

Pavel
То есть если хотя бы одна запись косячная, то весь...

в том и суть транзакций если в коде происходит исключение когда открыта транзакция то она откатывается

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
49
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
Подскажите, есть какие-то события создания/уничтожения у TFrame по типу TForm (OnCreate и OnClose/OnDestroy) ? Как отловить создание TFrame и "перед" уничтожением. На Tframe р...
Денис
8
Карта сайта