Size: a a a

pgsql – PostgreSQL

2021 March 27

SM

Serj Marin in pgsql – PostgreSQL
я посмотрю то расширение
источник

SM

Serj Marin in pgsql – PostgreSQL
в любом случае спасибо за помощь !
источник

ДТ

Дмитрий Тремасов... in pgsql – PostgreSQL
херачим все и сразу - на showtime вешаем партицирование, триггеры, и еще где нибудь сбоку можно view сделать
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
поставить в крон, это будет не триггер
а скорее просто написанная процедура, тут похоже подмена понятий произошла
источник

SM

Serj Marin in pgsql – PostgreSQL
Сергей Кравчук
поставить в крон, это будет не триггер
а скорее просто написанная процедура, тут похоже подмена понятий произошла
то есть там нет запуска по календарю ?
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
нет, в расширении есть
но это не триггеры
это запуск процедур или запросов

триггеры это другое
триггер это выполнение каких-либо действий при добавлении\изменении\удалении строки
источник

SM

Serj Marin in pgsql – PostgreSQL
ну мне больше ничего не приходит на ум, куда втулить )))
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
Например
у вас есть фильм который через неделю попадет в кинотеатр
и на него запланированы показы

но тут Ever Given встал в проливе, и лента не успевает приехать в прокат, изменяется дата выхода фильма...
и тут срабатывает триггер, который удаляет из таблицы показов все строки с этим фильмом, где дата показа меньше новой даты выхода фильма... как то так )
источник

SM

Serj Marin in pgsql – PostgreSQL
Сергей Кравчук
Например
у вас есть фильм который через неделю попадет в кинотеатр
и на него запланированы показы

но тут Ever Given встал в проливе, и лента не успевает приехать в прокат, изменяется дата выхода фильма...
и тут срабатывает триггер, который удаляет из таблицы показов все строки с этим фильмом, где дата показа меньше новой даты выхода фильма... как то так )
ага или коронавирус случился ))
источник

SM

Serj Marin in pgsql – PostgreSQL
а если как вариант как раз чистить таблицу от старых сеансов ?
источник

SM

Serj Marin in pgsql – PostgreSQL
добавили новый сеанс и тригер заодно ищет старые даты
источник

SM

Serj Marin in pgsql – PostgreSQL
будет триггер ради триггера )))
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Serj Marin
а какой типичный сценарий для применить ?
Реализация ограничений, для которых не хватает встроенных декларативных средств (unique, FK, exclusion). Например, "не более 5 строк в таблице по одной категории".
Поддержка каких-то "агрегатов" — помесячных продаж, текущих остатков и т.п.
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
Serj Marin
а если как вариант как раз чистить таблицу от старых сеансов ?
через триггеры не получится сделать нормально

а вот вызывать процедуру, которая будет удалять старые записи и добавлять новые, это да, это можно по крону
скажем раз в 5 минут..
источник

SM

Serj Marin in pgsql – PostgreSQL
два триггера в разных таблицах.
— В одной таблице при добавлении новой строки, сработает after на добавлние в movies
— в movies как-то цепочкой запустится проверка дат
так ?
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
Yaroslav Schekin
Реализация ограничений, для которых не хватает встроенных декларативных средств (unique, FK, exclusion). Например, "не более 5 строк в таблице по одной категории".
Поддержка каких-то "агрегатов" — помесячных продаж, текущих остатков и т.п.
ну это можно и через констрейн думаю сделать можно... но да, триггером тоже можно на самом деле

а вот удаление самой старой записи в категории, при добавлении новой, если старых больше 5, это да, это триггер
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
в том то и печаль, что триггер нельзя заставить срабатывать по времени, только по наступлению события
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
ну и триггеры нельзя повесить на DDL... но это уже другая история
(насколько я знаю)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Сергей Кравчук
ну это можно и через констрейн думаю сделать можно... но да, триггером тоже можно на самом деле

а вот удаление самой старой записи в категории, при добавлении новой, если старых больше 5, это да, это триггер
Хмм... что "это"? Я к тому, что CHECK constraints не могут содержать подзапросы, а если попытаться их "обмануть", вставив туда функцию — могут работать неправильно (тут подобное когда-то показывали, если не путаю).
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
Yaroslav Schekin
Хмм... что "это"? Я к тому, что CHECK constraints не могут содержать подзапросы, а если попытаться их "обмануть", вставив туда функцию — могут работать неправильно (тут подобное когда-то показывали, если не путаю).
не могу точно утверждать, могу ошибаться, потому и написал что "думаю можно" )
допускаю что это не так
источник