Запрос WATCH 

Синтаксис

WATCH [db.]live_view [EVENTS] [LIMIT n] [FORMAT format]

Запрос WATCH постоянно возвращает содержимое LIVE-представления. Если параметр LIMIT не был задан, запрос WATCH будет непрерывно обновлять содержимое LIVE-представления.

WATCH [db.]live_view;

Виртуальные столбцы 

Виртуальный столбец _version в результате запроса обозначает версию данного результата.

Пример:

CREATE LIVE VIEW lv WITH REFRESH 5 AS SELECT now();
WATCH lv;
┌───────────────now()─┬─_version─┐
│ 2021-02-21 09:17:21 │        1 │
└─────────────────────┴──────────┘
┌───────────────now()─┬─_version─┐
│ 2021-02-21 09:17:26 │        2 │
└─────────────────────┴──────────┘
┌───────────────now()─┬─_version─┐
│ 2021-02-21 09:17:31 │        3 │
└─────────────────────┴──────────┘
...

По умолчанию запрашиваемые данные возвращаются клиенту, однако в сочетании с запросом INSERT INTO они могут быть перенаправлены для вставки в другую таблицу.

Пример:

INSERT INTO [db.]table WATCH [db.]live_view ...

Секция EVENTS 

С помощью параметра EVENTS можно получить компактную форму результата запроса WATCH. Вместо полного результата вы получаете номер последней версии результата.

WATCH [db.]live_view EVENTS;

Пример:

CREATE LIVE VIEW lv WITH REFRESH 5 AS SELECT now();
WATCH lv EVENTS;
┌─version─┐
│       1 │
└─────────┘
┌─version─┐
│       2 │
└─────────┘
...

Секция LIMIT 

Параметр LIMIT n задает количество обновлений запроса WATCH, после которого отслеживание прекращается. По умолчанию это число не задано, поэтому запрос будет выполняться постоянно. Значение LIMIT 0 означает, что запрос WATCH вернет единственный актуальный результат запроса и прекратит отслеживание.

WATCH [db.]live_view LIMIT 1;

Пример:

CREATE LIVE VIEW lv WITH REFRESH 5 AS SELECT now();
WATCH lv EVENTS LIMIT 1;
┌─version─┐
│       1 │
└─────────┘

Секция FORMAT 

Параметр FORMAT работает аналогично одноименному параметру запроса SELECT.

Rating: 4.5 - 2 votes

Was this content helpful?
★★★★★