Size: a a a

pgsql – PostgreSQL

2020 December 28

SL

S. L. in pgsql – PostgreSQL
можно ли в этом запросе генерировать поле link_uuid? и если да, то как?
источник

am

a m in pgsql – PostgreSQL
Можно (в любом запросе) через  uuid_generate_v4().
Но надо будет сделать CREATE EXTENSION "uuid-ossp"
источник

SL

S. L. in pgsql – PostgreSQL
да, эта штука установлена. вопрос скорее в том, где именно это писать
источник

am

a m in pgsql – PostgreSQL
«Где». Я обычно сразу задаю вопрос «зачем».
источник

SL

S. L. in pgsql – PostgreSQL
a m
«Где». Я обычно сразу задаю вопрос «зачем».
мне нужно сформировать таблицу, сгруппировав поля и создать для них уникальный uuid
источник

E

ETL in pgsql – PostgreSQL
Мне нужно добавить для столбца seat_no значения '7А' и '7B' для всех случаев, когда aircraft_code = 'CN1';  
Как можно это сделать? Я делаю что-то а-ля:
INSERT INTO seats (seat_no) VALUES ('7A', '7B') WHERE aircraft_code = 'CN1';
Что я делаю не так?
источник

am

a m in pgsql – PostgreSQL
ETL
Мне нужно добавить для столбца seat_no значения '7А' и '7B' для всех случаев, когда aircraft_code = 'CN1';  
Как можно это сделать? Я делаю что-то а-ля:
INSERT INTO seats (seat_no) VALUES ('7A', '7B') WHERE aircraft_code = 'CN1';
Что я делаю не так?
Вставляешь два значения в одну колонку?
источник

E

ETL in pgsql – PostgreSQL
a m
Вставляешь два значения в одну колонку?
Да, мне нужно вставить два значения в одну колонку. Т.е. по одному надо? Несколько значений может быть в values только если колонки разные? Вроде пишут, что в PostgreSQL предложение values может содержать данные для нескольких строк таблицы.
источник

am

a m in pgsql – PostgreSQL
ETL
Да, мне нужно вставить два значения в одну колонку. Т.е. по одному надо? Несколько значений может быть в values только если колонки разные? Вроде пишут, что в PostgreSQL предложение values может содержать данные для нескольких строк таблицы.
Да, кроме случаев, когда колонка имеет тип array, json или еще какую-нибудь мерзость.
Кроме того, что-то мне подсказывает, что ты на самом деле хочешь UPDATE, а  не INSERT.
источник

E

ETL in pgsql – PostgreSQL
a m
Да, кроме случаев, когда колонка имеет тип array, json или еще какую-нибудь мерзость.
Кроме того, что-то мне подсказывает, что ты на самом деле хочешь UPDATE, а  не INSERT.
Хорошо, но если оставить одно значение, то ругается на WHERE. Попробовал заменить на
INSERT INTO seats (seat_no) VALUES ('7A') SELECT seat_no FROM seats WHERE aircraft_code = 'CN1' - ругается на SELECT.
источник

E

ETL in pgsql – PostgreSQL
a m
Да, кроме случаев, когда колонка имеет тип array, json или еще какую-нибудь мерзость.
Кроме того, что-то мне подсказывает, что ты на самом деле хочешь UPDATE, а  не INSERT.
Мне казалось, что UPDATE это обновить существующее, т.е. было 6A стало 7B.
источник

am

a m in pgsql – PostgreSQL
Именно. Поэтому WHERE в UPDATE работает, а в INSERT — нет.
источник

E

ETL in pgsql – PostgreSQL
a m
Именно. Поэтому WHERE в UPDATE работает, а в INSERT — нет.
А мне надо, чтобы все значения которые были - остались, а "7А" добавилось.
источник

Ð

Ð in pgsql – PostgreSQL
ETL
А мне надо, чтобы все значения которые были - остались, а "7А" добавилось.
insert into seats (aircraft, seat) values ('cn1', '7a'), ('cn1', '7b')
источник

VY

Victor Yegorov in pgsql – PostgreSQL
INSERT SELECT вам нужен. с CROSSJOIN-ом
источник

AO

Alexander Opryshko in pgsql – PostgreSQL
Коллеги, подскажите, пожалуйста.
Столкнулся с тем, что при логической репликации не доезжают номера в sequence. В итоге при переезде с одной базы на другую во время даунтайма перенес номера и только потом переключил приложение на новую базу. Есть ли более красивый путь обойти эту проблему?
источник

E

ETL in pgsql – PostgreSQL
Ð
insert into seats (aircraft, seat) values ('cn1', '7a'), ('cn1', '7b')
Да, вот так запилилось, thx.
источник

SZ

Sergey Zhuravlev in pgsql – PostgreSQL
Alexander Opryshko
Коллеги, подскажите, пожалуйста.
Столкнулся с тем, что при логической репликации не доезжают номера в sequence. В итоге при переезде с одной базы на другую во время даунтайма перенес номера и только потом переключил приложение на новую базу. Есть ли более красивый путь обойти эту проблему?
логическая репликация не поддерживает репликацию сиквенсов — это ее свойство.
источник

AO

Alexander Opryshko in pgsql – PostgreSQL
Sergey Zhuravlev
логическая репликация не поддерживает репликацию сиквенсов — это ее свойство.
это я уже понял
была задача обновить пг с 11 на 12 и переехать на другой кластер
настроил репликацию из старого кластера в новый, дождался когда доедут все данные, выключил приложение, сдампил сиквенсы, применил в новом кластере и потом включил приложение
Если ли другой путь?
источник

SZ

Sergey Zhuravlev in pgsql – PostgreSQL
Alexander Opryshko
Коллеги, подскажите, пожалуйста.
Столкнулся с тем, что при логической репликации не доезжают номера в sequence. В итоге при переезде с одной базы на другую во время даунтайма перенес номера и только потом переключил приложение на новую базу. Есть ли более красивый путь обойти эту проблему?
сами сиквенсы дампятся как таблицы дампом -t имя, если еще -s — то получите определение сиквенса ( схему ) начальное значение шаг и тд.

а вот если дампить сиквенс как таблицу -t имя и еще -а — те заначение
то к вам приедет last_value — наверно вы этого хотели?
источник