Показаны сообщения с ярлыком sql. Показать все сообщения
Показаны сообщения с ярлыком sql. Показать все сообщения

пятница, 29 января 2010 г.

Рекурсивные запросы в DB2

Сегодня увидел довольно занимательный пример рекурсии на DB2. В примере выполняется поиск корневого значения, а примечательным является простота и наглядность примера - дополнительных таблиц создавать не требуется.

with 

  tree (id,pid) as (
    values (1,2), (2,3), (3,4), (4, cast(null as int)), (5,3), (6,5), (7,8), (8, cast(null as int))
  ),

  rr (id,pid) as (
    select tr.id, tr.pid from tree tr where tr.id=1
      union all
    select tt.id,tt.pid from tree tt, rr
    where tt.id = rr.pid
  )

select id from rr where rr.pid is null

Поиск "корня" выполняется для значения указанного в tr.id. Для проверки tr.id=1 можно например заменить на tr.id=7.

Источник: db2 SQL: value(), values(), with, recursive SQL // selectorweb.com.

пятница, 7 августа 2009 г.

MySQL: чистка журналов репликации (cleaning log replication)

Посмотреть список журналов репликации можно с помощью команды:

mysql> SHOW MASTER LOGS;

Чистку журналов можно организовать добавив в crontab:

mysql -e "PURGE MASTER LOGS BEFORE '`date +%Y-%m-%d -d "-7 day"` 09:00'"

понедельник, 16 февраля 2009 г.

DB2: как преобразовать date в timestamp

Если в DB2 нужно преобразовать тип date в timestamp, то функция timestamp() — по аналогии с time() или date() — в этом случае не самый удобный помощник, т. к. требует второй аргумент — time .

Но зато есть timestamp_iso() и если нужно получить timestamp соответствующий 01:00 вчерашнего дня, то можно это сделать используя:
select timestamp_iso(current date - 1 day) + 1 hour as my_timestamp
from sysibm.sysdummy1

Источник: dbforums.com.