powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / два copy - это одна транзакция?
3 сообщений из 3, страница 1 из 1
два copy - это одна транзакция?
    #39607438
acidophilus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
COPY (select * from table limit 1000000;) TO 'C:\Distr\1.csv' csv DELIMITER ';' HEADER;
COPY (select * from table limit 1000000 OFSET 1000000;) TO 'C:\Distr\2.csv' csv DELIMITER ';' HEADER;



Будет ли это то же самое по выгружаемым данным что:
Код: sql
1.
COPY (select * from table limit 2000000;) TO 'C:\Distr\1.csv' csv DELIMITER ';' HEADER;




?



Или если таблица меняется между первым и вторым - то данные будут отличаться?
...
Рейтинг: 0 / 0
два copy - это одна транзакция?
    #39607486
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acidophilus,

в запросах нет сортировки. Поэтому результаты могут быть разными в принципе.
Если сортировку добавить - два запроса дадут тот же самый результат, что и один более большой, только если выполняютсся в одной транзакции на repeatable read или serializable изоляции транзакций. На дефолтном read commited могут дать разные результаты.
...
Рейтинг: 0 / 0
два copy - это одна транзакция?
    #39607495
acidophilus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkijacidophilus,

в запросах нет сортировки. Поэтому результаты могут быть разными в принципе.
Если сортировку добавить - два запроса дадут тот же самый результат, что и один более большой, только если выполняютсся в одной транзакции на repeatable read или serializable изоляции транзакций. На дефолтном read commited могут дать разные результаты.


Спасибо.


Скажите, так нормально?



Код: sql
1.
2.
3.
4.
5.
6.
7.
BEGIN;
SET transaction_isolation = 'repeatable read';

COPY (select * from table ORDER BY id limit 1000000;) TO 'C:\Distr\1.csv' csv DELIMITER ';' HEADER;
COPY (select * from table ORDER BY id limit 1000000 OFSET 1000000;) TO 'C:\Distr\2.csv' csv DELIMITER ';' HEADER;

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


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