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

Ребят, разбираюсь с транзакциями и уровнями изоляции в PostgeSQL и

следующие строки из документации, как по мне, противоречат друг другу.
` Repeatable Read Isolation Level
The Repeatable Read isolation level ... never sees either uncommitted data or changes committed during transaction execution by concurrent transactions
UPDATE, DELETE ... commands behave the same as SELECT in terms of searching for target rows: they will only find target rows that were committed as of the transaction start time. However, such a target row might have already been updated (or deleted or locked) by another concurrent transaction by the time it is found.
`
Вот не понятно, вроде как при этом уровне изоляции внутри транзакции не видны изменения произведенные другими транзакциями, и в тоже время в следующем абзаце написано, что UPDATE, DELETE ... квери могут получить модифицированные данные.
Помогите плз, как это понимать? Спасибо.

8 ответов

5 просмотров

> и в тоже время в следующем абзаце написано, что UPDATE, DELETE ... квери могут получить модифицированные данные. Нет, не написано же. Написано только то, что при выборке запрос на них "наткнётся". Что будет потом, написано дальше, насколько я помню.

Gleb- Автор вопроса
Yaroslav Schekin
> и в тоже время в следующем абзаце написано, что ...

я и не говорю что будет в результате работы транзакции, я говорю что транзакция получит модифицированные данные (после селекта выбранные данные окажутся модифицированными). Вот и вопрос, почему так? Ведь написано, что на этом уровне изоляции транзакция не должна видеть изменения произведенные другими транзакиями.

Gleb
я и не говорю что будет в результате работы транза...

Нет, не получит (опять-таки, там этого не написано). И Вы бы знали это, если бы попробовали тривиальные тесты, кстати. ;) Т.е. если хотите подробно разбираться — лучше создать тестовые таблицы, открыть две сессии и пробовать всё, что смущает.

Gleb- Автор вопроса
Yaroslav Schekin
Нет, не получит (опять-таки, там этого не написано...

Спасибо, обязательно сделаю это, но все же, если вы говорите что не получит, то как понимать это абзац? UPDATE, DELETE ... commands behave the same as SELECT in terms of searching for target rows: they will only find target rows that were committed as of the transaction start time. However, such a target row might have already been updated (or deleted or locked) by another concurrent transaction by the time it is found.

Gleb
Спасибо, обязательно сделаю это, но все же, если в...

Тем не менее, такая запись может быть уже модифицирована (или удалена, или заблокирована) другой конкурентной (параллельно выполняющейся) транзакцией к тому моменту, когда [эта запись] будет найдена.

Gleb- Автор вопроса
Gleb
ну да) что я сказал не так?)

То, что нигде тут не написано, что данная транзакция её увидит. Описывается неизбежная реальность — транзакции происходят, [такие] изменения случаются. Почему Вы не читаете текст дальше, а "застряли" на этом предложении?

Gleb- Автор вопроса
Yaroslav Schekin
То, что нигде тут не написано, что данная транзакц...

все, врубился, спасибо. Действительно чето меня залогало=)

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

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

А чем вам питонисты не угодили?😂
.
79
Привет, запускаю werf в dind в k8s, получаю ошибку на этапе build/beforeSetup: /.werf/stapel/embedded/bin/bash: /.werf/scripts/5898bdfe5214357d3706b879cc8d3d78460fb379607cbd...
florius0
4
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Подскажите, можно ведь комбинировать запись данных в один и тот же Stream через TFileStream и через TCompressionStream поочерёдно? Ну т.е. часть данных мне нужно сжать, часть ...
notme
4
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ребят, кто сталкивался с тем, что Electron.js не разворачивает билд React.js-приложения? Голый body в чёрном цвете, как и должно быть, но остального - нет. Билд работает исп...
..
6
Карта сайта