Size: a a a

pgsql – PostgreSQL

2020 August 18

A

Andrey in pgsql – PostgreSQL
Victor Yegorov
а ваш andrey не superuser случаем? \du andrey что говорит?
нет, обычный пользователь
\du+ andrey
                 List of roles
Role name | Attributes | Member of | Description
-----------+------------+-----------+-------------
andrey    |            | {}        |
источник

R

RTM in pgsql – PostgreSQL
Nick Belous
Первая таблица это наименование столбцов и есть ли столбцы с похожей функцией в другой. Вторая таблица: совпадают ли типы в таблицах 1 и 2, 1 и 3, 2 и 3.
источник

R

RTM in pgsql – PostgreSQL
там наверно ссылки на другие листы/ячейки были?
источник

R

RTM in pgsql – PostgreSQL
а то так не понятно )
источник

🅵

🅵🅾️🆇 in pgsql – PostgreSQL
Котаны, напомните невежде, когда мы в SQL у поля указываем автоинкримент или делаем его праймари - индекс по нему строить не надо дополнительно, оно и так будет проиндексировано?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
antuan
добрейшего денечка
задача: в рамках одного запроса нужно вставить данные в таблицу, затем через select... for update получить все вставленные строки.
такой вариант не работает (возвращает пустой результат):
drop table if exists test;
create table test (id serial primary key , value text unique );
with inserted as (
   insert into test (value)
   select ser::text from generate_series(0, 10) as ser
   on conflict (value) do update
   set value=excluded.value
   returning *
)
select * from test
   inner join inserted using (id) for update;

наблюдения: если убрать for update, то:
* если в таблице не было строк, ничего не возвращает
* если в таблице были строки - возвращает норм

как можно добиться желаемого?
заранее благодарен за помощь
> затем через select... for update получить все вставленные строки.

А зачем? В смысле, какая тут цель / что Вы дальше с ними собираетесь делать?
источник

a

antuan in pgsql – PostgreSQL
Yaroslav Schekin
> затем через select... for update получить все вставленные строки.

А зачем? В смысле, какая тут цель / что Вы дальше с ними собираетесь делать?
Изменять :)
источник

a

antuan in pgsql – PostgreSQL
Или удалять, как пойдет
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
antuan
Изменять :)
Ну так и изменяйте (выбирая прямо из inserted), зачем там вообще FOR UPDATE?
Или каким образом Вы это собираетесь делать?
источник

NB

Nick Belous in pgsql – PostgreSQL
Не, там где Н/Д необходимо сопоставить столбцы и добавить, к примеру, c0_2 и null в A и C.
источник

a

antuan in pgsql – PostgreSQL
Конечно, можно селект сделать и отдельным запросом. Но мало ли...
источник

a

antuan in pgsql – PostgreSQL
Yaroslav Schekin
Ну так и изменяйте (выбирая прямо из inserted), зачем там вообще FOR UPDATE?
Или каким образом Вы это собираетесь делать?
Есть вероятность, что конкурентный процесс тоже их будет менять. А это джанга, которая проапдецтит,все поля, а не только те, которые изменились
источник

N

Newman in pgsql – PostgreSQL
Виталий Кухарик
pgcenter рекомендую
Спасибо, посмотрим.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
antuan
Есть вероятность, что конкурентный процесс тоже их будет менять. А это джанга, которая проапдецтит,все поля, а не только те, которые изменились
Вы на READ COMMITTED работаете, что ли (почему Вы вообще об этом думаете, в смысле)?
Но даже если да, то, казалось бы, вставленные никто не увидит до завершения транзакции, а на изменённых и так уже наложен, как минимум, FOR NO KEY UPDATE lock. Т.е. зачем тут FOR UPDATE?
источник

a

antuan in pgsql – PostgreSQL
А еще интересно в целях повышения образованности, почему for update меняет результаты селекта...
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
antuan
А еще интересно в целях повышения образованности, почему for update меняет результаты селекта...
Он только на RC их меняет, насколько я помню. И в документации ( https://www.postgresql.org/docs/current/transaction-iso.html#XACT-READ-COMMITTED ) описано, почему, с примерами.
источник

a

antuan in pgsql – PostgreSQL
Yaroslav Schekin
Он только на RC их меняет, насколько я помню. И в документации ( https://www.postgresql.org/docs/current/transaction-iso.html#XACT-READ-COMMITTED ) описано, почему, с примерами.
Спасибо, прояснилось
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
🅵🅾️🆇
Котаны, напомните невежде, когда мы в SQL у поля указываем автоинкримент или делаем его праймари - индекс по нему строить не надо дополнительно, оно и так будет проиндексировано?
Автоматически индекс строится для PRIMARY KEY (и UNIQUE / exclusion constraints).
А "автоинкременты" (serial / identity / sequence) вообще не имеют к индексам никакого отношения.
источник

🅵

🅵🅾️🆇 in pgsql – PostgreSQL
Yaroslav Schekin
Автоматически индекс строится для PRIMARY KEY (и UNIQUE / exclusion constraints).
А "автоинкременты" (serial / identity / sequence) вообще не имеют к индексам никакого отношения.
Спасибо, значит только для праймари ки.
источник

🅵

🅵🅾️🆇 in pgsql – PostgreSQL
Просто у меня кодогенератор ОРМ'ки ругается на табличку, у которого объявлено поле с автоинкриментом и праймари ки.
источник