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

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

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

13 ответов

25 просмотров

за транзакции учти что если у тебя длительная операция то таблица над которой идет транзакция будет недоступна для других запросов юзеров и будет плевать 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
То есть если хотя бы одна запись косячная, то весь...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта