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

Если в постгресе открыть первую транзакцию с уровнем Serializable и

считать данные, потом с тем же уровнем открыть вторую транзакцию и считать данные с таким же условием, а потом вставить ещё строку попадающую под это условие и закоммитить до первой, пройдёт ли коммит?

10 ответов

5 просмотров

Так проверьте, если вот это https://www.postgresql.org/docs/current/transaction-iso.html как-то непонятно или вы этому как-то не верите.

RAFIZ- Автор вопроса
Ilya Anfimov
Так проверьте, если вот это https://www.postgresql...

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

RAFIZ
чекнуть нет возможности но исходя из того что там...

Если первая не пишэт — то что ей помешает.

RAFIZ
чекнуть нет возможности но исходя из того что там...

Не понятно почему 1ая-тр может не завершиться, если она только читает данные

Ilya Zviagin
Не понятно почему 1ая-тр может не завершиться, есл...

Потому что в некоторых ситуациях (очень редко, впрочем) на serializable PostgreSQL откатывает даже read-only transactions (см. https://wiki.postgresql.org/wiki/SSI#Rollover ).

RAFIZ- Автор вопроса
Ilya Zviagin
Не понятно почему 1ая-тр может не завершиться, есл...

первая пишет последовательность: tx1: select * from sample where a = 1 tx2: select * where a = 1 from sample tx2: insert into sample(a) values(1) tx1: insert into sample(a) values(1)

RAFIZ
первая пишет последовательность: tx1: select * f...

А почему это вдруг должно останавливаться Почему ? В чём конфликт этих транзакций?

RAFIZ
первая пишет последовательность: tx1: select * f...

Если первая пишэт, то тут она уж обязательно должна упасть.

RAFIZ- Автор вопроса
Ilya Zviagin
А почему это вдруг должно останавливаться Почему ?...

спросонья не то спросил 🤦🏽‍♂ вот такая последовательность: tx1: select * from sample where a = 1 tx2: select * from sample where a = 1 tx1: insert into sample(a) values(1) tx2: insert into sample(a) values(1) tx2: commit tx1: select * where a = 1 from sample tx1: commit первая упадёт или вторая?

RAFIZ
спросонья не то спросил 🤦🏽‍♂ вот такая последоват...

А я уж попробовал и хотел ответ писать. ;( И да, Вы бы хоть SQL писали нормальный, ну что это такое: "select * where a = 1 from sample;"? ;)

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

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

зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
2
Добрый день! Подскажите, пожалуйста: какими компетенциями нужно обладать, чтобы претендовать на работу эрланг (отдельная благодарность, если про элексир тоже подскажете) разр...
via ☸️ led
20
Но если Евгений и Алекс используют в боевых условиях, то почему нет? А ты как-то про бизнес больше задвигаешь, это имеет к разработке отношение, но все же этим больше другие л...
Keiman
5
кто тебе сказал, что она угроблена? многие только начинают жизнь, после увольнения из Гугла, Майкрософта, Оракла,...
Alex Kom
9
В альтернативе у нас сидеть горбатиться на дядю в галерах, пока не помрешь или пока тебя не заменят более молодым сотрудником, который готов гребсти в два раза дешевле. Вот и ...
Кабан Кабанов
7
Полного набора чего? ООП это инкапсуляция и полиморфизм, а не этот ваш синтаксический сахар
Yuri Volkov
8
По какой цене продают скрипты анонимного чата? Я за 500 даже готов 😂😂😂
Ilya Shvechikov
7
Да, но разве это перестало быть нытьем? Или тебя насильно заставляют писать на свифте?
Artem Kondrat'ev
4
Мапинг моделей на базу и обратно?
Юрий Жлоба
4
Карта сайта