Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Создать хранимую процедуру для SELECT INTO
|
|||
|---|---|---|---|
|
#18+
Помогите написать хранимку,которая бы агрегировала данные и писала их в специальную таблицу. Есть таблицы iptables с полями: bytes dest_ip source_ip date_prev(предыдущий ЧАС) date_next(последующий ЧАС и iptables_agr bytes dest_ip source_ip date_prev(предыдущий ДЕНЬ) date_next(последующий ДЕНЬ). Нужно из таблица iptables в определенное время писать агрегированные по дням данные в iptables_agr. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2006, 13:15 |
|
||
|
Создать хранимую процедуру для SELECT INTO
|
|||
|---|---|---|---|
|
#18+
create trigger after insert ... бла бла бла if( NEW.date_next == определенное время ) then insert into iptables_agr (fields) select ip_from,ip_to,sum(),sum() form iptables.... бла бла бла group by ip_from,ip_to ; end if; return new; бла бла бла; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2006, 13:51 |
|
||
|
Создать хранимую процедуру для SELECT INTO
|
|||
|---|---|---|---|
|
#18+
а ну group by date_next,ip_from,ip_to вобщем в зависимости что и как агрегировать надо.. ну можно еще что то типа where not exists (select 1 from iptables_agr where date_next=iptables.date_next) добавить чтоб уже агрегированные до этого на вставлять по новой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2006, 13:55 |
|
||
|
Создать хранимую процедуру для SELECT INTO
|
|||
|---|---|---|---|
|
#18+
Спасибо.Но некоторые моменты не понятны (я еще только начинаю писать триггеры и функции).Для чего нужна строчка if( NEW.date_next == определенное время ) thenif( NEW.date_next == определенное время ) then и какое время подставлять,что значит NEW? Инсерты в iptables делаются каждый час по 2000 в одной транзакции и в условие триггера нужно ставить этот инсерт или можно как-то указать конец транзакции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2006, 14:21 |
|
||
|
Создать хранимую процедуру для SELECT INTO
|
|||
|---|---|---|---|
|
#18+
по поводу NEW - четсно говоря в падлу мне переводить тут постгревые доки по тригерам... темболее что ты уже начал сам про это читать(там все доходчиво написано) if(...) типа проверка что вставилась запись с "определеным временем" (в твоей первнчлнй.формулировке) т.е. могу редположить что если вставилась такая запись то это "определенное время" наступило и можно пихать агрегированые записи туда ...куда а задаче написано. :) можно сделать тригер FOR EACH ROWS ипределять момент пополнения агрегации там,а можно просто выполнить запроc в конце твоей транзакции: insert into iptables_agr (bytes,dest_ip,source_ip,date_prev,date_next) select sum(bytes),dest_ip,source_ip,date_prev,date_next from iptables as x where not exists ( select 1 from iptables_agr where date_prev=x.date_prev and date_next=x.date_next and ip=x.ip ) group by dest_ip,source_ip,date_prev,date_next ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2006, 17:46 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=323&tid=2006507]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 365ms |

| 0 / 0 |
