powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как сделать UPDATE в dblink-е внутри цикла?
9 сообщений из 9, страница 1 из 1
Как сделать UPDATE в dblink-е внутри цикла?
    #39436116
Константин Сергеевич Дерерк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть цикл, внутри надо сделать update в dblink с параметром.


Примерно такая схема:

Код: sql
1.
2.
3.
4.
5.
LOOP

update на удаленном сервере через dblink WHERE id=переменная.

END LOOP;




Подскажите пожалуйста Как это правильно реализовать?
...
Рейтинг: 0 / 0
Как сделать UPDATE в dblink-е внутри цикла?
    #39436184
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Сергеевич Дерерк
Подскажите пожалуйста Как это правильно реализовать?

руками и головой
...
Рейтинг: 0 / 0
Как сделать UPDATE в dblink-е внутри цикла?
    #39436326
Константин Сергеевич Дерерк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqКонстантин Сергеевич ДереркПодскажите пожалуйста Как это правильно реализовать?

руками и головой

Поподробнее пожалуйста.
...
Рейтинг: 0 / 0
Как сделать UPDATE в dblink-е внутри цикла?
    #39436355
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Константин Сергеевич Дерерк,

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

Есть два варианта:
* (фантастический) расскажете, что пытались сделать, какие руководства использовали. Вам расскажут, какие RTFM нужно прочитать, укажут на примеры и возможные ошибки в Ваших отрывках кода.
* (реалистический) Вы пойдете на йух. Ваши топики будут перемещать в раздел "Работа". С просьбой указать почасовую ставку. Репетиторы нынче дороги.
...
Рейтинг: 0 / 0
Как сделать UPDATE в dblink-е внутри цикла?
    #39436376
Константин Сергеевич Дерерк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, вот так вроде получилось:

Код: sql
1.
2.
3.
4.
...
sql_sql:='update t1 set c1=''moooo'' ';
EXECUTE sql_sql;
...
...
Рейтинг: 0 / 0
Как сделать UPDATE в dblink-е внутри цикла?
    #39436420
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Сергеевич Дерерк,

Есть ещё Dollar Quoting и функция format() .
...
Рейтинг: 0 / 0
Как сделать UPDATE в dblink-е внутри цикла?
    #39436477
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Сергеевич Дерерк... надо сделать update в dblink с параметром.
Код: sql
1.
update на удаленном сервере через dblink WHERE id=переменная.



execute не относится к удаленному серверу или дблинку. как грицца -- "от слова совсем"

1. зачем именно дблинк ? вам не нужна "распределенная транзакционность" ?
в противном случае апдейтие через _fdw -- откатывается в лучшем виде (при крахе головной). я проверял. (судя по последним данным в 9.6 удаленная транза реализована как repeatable read , что, в свою очередь, м.б. чревато, если активно заюзан транзакционный ddl )

2. если "дблинк" появился с потолка, то есть еще plproxy -- там нет транзакционности. т.е. после того как plproxy--вызов закоммитился на удаленной ноде -- падение в транзакции на вызывающей не вызовет отката на проксируемой(мых). т.е. поведение противоположно 1.

3. если хотите пользовать дблинк -- пользуйте. все рефлексы для вызова из клиентов годны и тут -- ибо дблинк в пж -- попросту "встроенный в SQL клиент".
...
Рейтинг: 0 / 0
Как сделать UPDATE в dblink-е внутри цикла?
    #39436873
PgSQLanonymous3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq1. зачем именно дблинк ? вам не нужна "распределенная транзакционность" ?
в противном случае апдейтие через _fdw -- откатывается в лучшем виде (при крахе головной). я проверял.

Если FOREIGN SERVERs несколько, то это, к сожалению, не так. См. https://wiki.postgresql.org/wiki/2PC_on_FDW

qwwq(судя по последним данным в 9.6 удаленная транза реализована как repeatable read , что, в свою очередь, м.б. чревато, если активно заюзан транзакционный ddl )


Если локальная использует SERIALIZABLE, то и удалённая тоже, иначе REPEATABLE READ.
А транзакционный DDL, кажется, всегда приблизительно READ COMMITTED, что ни используй...
...
Рейтинг: 0 / 0
Как сделать UPDATE в dblink-е внутри цикла?
    #39436897
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLanonymous3qwwq1. зачем именно дблинк ? вам не нужна "распределенная транзакционность" ?
в противном случае апдейтие через _fdw -- откатывается в лучшем виде (при крахе головной). я проверял.

Если FOREIGN SERVERs несколько, то это, к сожалению, не так. См. https://wiki.postgresql.org/wiki/2PC_on_FDW


снкс.

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

т.е. -- рекомендация пользоваться fdw не слишком удачная, если вспомнить об этом печальном факте. 19876722
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как сделать UPDATE в dblink-е внутри цикла?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]