Size: a a a

pgsql – PostgreSQL

2021 January 11

RL

Roman Lukianov in pgsql – PostgreSQL
Глеб Пономарев
Да, только что вспомнил про regexp)
Похоже. что как то так
WHERE brand REGEXP '[A-Za-z0-9]*'
источник

АЛ

Аггей Лоскутников... in pgsql – PostgreSQL
Victor Yegorov
зачем он вам?!
Например делать fk на секционированную таблицу
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Аггей Лоскутников
Например делать fk на секционированную таблицу
https://t.me/pgsql/275125
На практике когда такое нужно, вот в чём вопрос.
источник

SG

Sergey Gr in pgsql – PostgreSQL
Да те же таблицы orders и order_items. Странно в каждую колу и чизбургер пихать ещё и штат.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Sergey Gr
Да те же таблицы orders и order_items. Странно в каждую колу и чизбургер пихать ещё и штат.
И ключи у них (order_id) и (order_id, item_id / line_id) или что-то в этом роде, нет?
Откуда другие уникальные индексы?
источник

SG

Sergey Gr in pgsql – PostgreSQL
Yaroslav Schekin
И ключи у них (order_id) и (order_id, item_id / line_id) или что-то в этом роде, нет?
Откуда другие уникальные индексы?
Ну да. orders(order_id PK) , order_items (item_id PK, order_id FK)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Sergey Gr
Ну да. orders(order_id PK) , order_items (item_id PK, order_id FK)
Ну так и в чём проблема? Их можно партиционировать по этим ключам, и FK тут работают.
источник

SG

Sergey Gr in pgsql – PostgreSQL
Yaroslav Schekin
Ну так и в чём проблема? Их можно партиционировать по этим ключам, и FK тут работают.
Я не могу придумать ЗАЧЕМ их партиционировать по этим суррогатным ключам. А вот по дате заказа или по региону - вполне нужно.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Sergey Gr
Я не могу придумать ЗАЧЕМ их партиционировать по этим суррогатным ключам. А вот по дате заказа или по региону - вполне нужно.
Как обычно — для того, чтобы облегчить maintenance.
Ни дата заказа, ни регион не являются уникальными ключами, поэтому как-то не относятся к обсуждению, нет?
источник

Ss

Stts stss in pgsql – PostgreSQL
всем привет, помогите как на триггер поставить такое условие, ошибка заключается в том что нельзя в триггере подзапросы использовать CREATE TRIGGER counter
AFTER INSERT ON status
WHEN(now() - (select last_dt from last_dt where  id='1')> INTERVAL '24h')
EXECUTE PROCEDURE count_actives();
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Stts stss
всем привет, помогите как на триггер поставить такое условие, ошибка заключается в том что нельзя в триггере подзапросы использовать CREATE TRIGGER counter
AFTER INSERT ON status
WHEN(now() - (select last_dt from last_dt where  id='1')> INTERVAL '24h')
EXECUTE PROCEDURE count_actives();
Проверяйте это условие внутри триггерной функции.
источник

Ss

Stts stss in pgsql – PostgreSQL
Мне нужно чтобы триггер выполнялся ежедневно в одно и то же время, если в функцию добавлю не сработает
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Stts stss
Мне нужно чтобы триггер выполнялся ежедневно в одно и то же время, если в функцию добавлю не сработает
Так при чём тут вообще триггер? Тут нужно чем-то запускать задание по расписанию, по идее — cron или pg_cron и т.п.
источник

Ss

Stts stss in pgsql – PostgreSQL
Задание такое
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Stts stss
Задание такое
Какое "такое"? Триггерами Вы это не решите, вот и всё.
источник

Ss

Stts stss in pgsql – PostgreSQL
А если использовать pg agent ?
источник

Ss

Stts stss in pgsql – PostgreSQL
Создайте триггер, который ежедневно считает количество активностей каждого пользователя за определенное время:


активность в приложении с 06:00 до 18:00 (дневное время);
активность в приложении с 18:01 до 05:59 (вечернее время).
Под активностью подразумеваются любые действия пользователя (не администратора) в приложении.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Stts stss
А если использовать pg agent ?
Так он аналог того, что я посоветовал выше.
источник

Ss

Stts stss in pgsql – PostgreSQL
проще крон использовать?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Stts stss
Создайте триггер, который ежедневно считает количество активностей каждого пользователя за определенное время:


активность в приложении с 06:00 до 18:00 (дневное время);
активность в приложении с 18:01 до 05:59 (вечернее время).
Под активностью подразумеваются любые действия пользователя (не администратора) в приложении.
Мне кажется, что тут задача либо криво сформулирована, либо Вы её неправильно понимаете.
Это можно прочитать так, что триггер просто должен поддерживать summary table вида (user_id, date, is_morning, total_actions) или что-то в этом роде.
источник