Size: a a a

pgsql – PostgreSQL

2021 July 02

RS

Roman Sribnyi in pgsql – PostgreSQL
Мы и так, почистили штук 40, а то записей в таблице было 2.6млн
источник

D

Denisio in pgsql – PostgreSQL
суть PK это однозначная идентификация записи. учитывая это, каким образом ты будешь  идентифицировать множество записей с null значением в PK ?
источник

D

Denisio in pgsql – PostgreSQL
понабилось гопоты
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Ага. Спасибо.
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
взаимно
источник

J

Julia in pgsql – PostgreSQL
Здравствуйте. Помогите пожста начинающему чайнику. У меня есть case, вот такой case when

(select o3.attr_2321_
from registry.object_309_ o3
where
o3.is_deleted<>true and
o3.attr_774_=o.attr_774_ and
o3.attr_331_=o.attr_331_

group by
o.attr_331_,
o.attr_774_,
o3.attr_2321_

order by o3.attr_2321_ limit 1)  

is true or slot1.attr_2321_ is true or prich_for_rasp.attr_2360_ is not null then true else null end

as not_av_910
источник

KK

Konstantin K in pgsql – PostgreSQL
зачем так то
источник

J

Julia in pgsql – PostgreSQL
Я хочу далее использовать  not_av_910 в другом case, но postgres не дает это сделать и мне приходится снова использовать этот гигансткий кейс
источник

KK

Konstantin K in pgsql – PostgreSQL
with tmp as (
 select
   exists (
     select from registry.object_309_ o3
     where not o3.is_deleted
     and o3.attr_774_ = o.attr_774_
     and o3.attr_331_ = o.attr_331_
     and o3.attr_2321_)
   or slot1.attr_2321_ is true
   or prich_for_rasp.attr_2360_ is not null
   as not_av_910
 from ...
)

select not_av_910 from tmp
источник

OK

Oleg Kuzmenko in pgsql – PostgreSQL
Добрый день

Для вывода графиков в веб-приложении я функцией generate_series генерирую даты от и до с интервалом в 1 день, затем лефтджойню табличку с данными (нужно показать кол-во добавленных записей по дням) и группирую по дате

Все бы ничего, если бы не часовые пояса. В самой базе данные хранятся в UTC, но при коннекте с веб-приложения я делаю SET TIMEZONE = пользовательская таймзона и из-за этого по дате данные джойнятся некорректно

Что посоветуете?
источник

OK

Oleg Kuzmenko in pgsql – PostgreSQL
*вариант не устанавливать в БД при коннекте пользовательскую таймзону не подойдет
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Хмм... но Вы так ничего и не объяснили.
И о чём Вы предупреждали, я тоже не понял, и не увидел в обычном методе никаких проблем, с которыми нужно было бы бороться.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
> В самой базе данные хранятся в UTC,

Изменить вот это на нормальное хранение (или придётся мучиться).

В сторону: что-то сегодня прямо день неправильно работающих с timestamp-ами. ;)
источник

OK

Oleg Kuzmenko in pgsql – PostgreSQL
А чем хранение в UTC не нормальное, если к БД коннектятся из разных частей мира?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_timestamp_.28without_time_zone.29
Вообще прочитайте весь этот раздел.
источник

N

Nųℛßℯƙ Kɦαƴðαℛℴϑ... in pgsql – PostgreSQL
Добрый день!. Как сделать условие чтобы проверялись сразу две колонки, то есть если указанное значение нету в первой колонке, то нужно брать с 2-ой.
источник

OK

Oleg Kuzmenko in pgsql – PostgreSQL
Я уже как-то долго с одним человеком спорил об этом (рассматривая конкретно мой случай) и в итоге он согласился, что я прав. Это было долго, я не готов повторять это снова 🙂
источник

AK

Alexandr Khan in pgsql – PostgreSQL
Всем привет, подскажите, как  сделать ON CONFLICT на несколько строк, уникальных по отдельности(!), и если нельзя, то какие есть альтернативы

Проблема такая: с апи приходят корявые данные
street_id, name
1, Lenina
2, Lenina

Делаю
ON CONFLICT(name) DO UPDATE name=excluded.name
RETURNING id
Остается id 1, тут все ок

Следующим запросом к апи получаю "1, Lenina" и на инсерте падаю с ошибкой по id
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Это просто потрясающе. Т.е. у Вас проблемы с тем, что при правильном подходе было бы тривиально, но Вы правы? ;)

> и в итоге он согласился, что я прав

А никто, кто знает, как работать с датой/временем, не согласился бы, понимаете?
Просто для информации: приведённая ссылка — это не предмет для спора, это описание правильных подходов.
источник