Postgresql - создать материализованное представление - PullRequest
0 голосов
/ 16 июня 2020
CREATE MATERIALIZED VIEW Available
REFRESH FORCE
START WITH CURRENT_DATE NEXT CURRENT_DATE + 1
AS
SELECT Table.item_id AS item_id, 
Table.reserv_id AS reserv_id  
FROM Table
LEFT OUTER JOIN Reserv ON Reserv.reserv_id = Table.reserv_id  
WHERE Reserv.start_date > CURRENT_DATE
OR Reserv.end_date < CURRENT_DATE 
OR Table.reserv_id IS NULL;  

Я хочу создать представление, которое обновляется один раз в день, но получаю сообщение об ошибке: «синтаксическая ошибка на или рядом с« REFRE SH »». Что с ним не так?

1 Ответ

1 голос
/ 16 июня 2020

Вы не можете использовать какое-либо предложение REFRE SH в PostgreSQL, потому что оно не существует в PostgreSQL.

Если следующий запрос верен в вашей базе данных:

SELECT Table.item_id AS item_id, 
Table.reserv_id AS reserv_id  
FROM Table
LEFT OUTER JOIN Reserv ON Reserv.reserv_id = Table.reserv_id  
WHERE Reserv.start_date > CURRENT_DATE
OR Reserv.end_date < CURRENT_DATE 
OR Table.reserv_id IS NULL;  

Следующая инструкция должна работать:

    CREATE MATERIALIZED VIEW Available
    AS
    SELECT Table.item_id AS item_id, 
    Table.reserv_id AS reserv_id  
    FROM Table
    LEFT OUTER JOIN Reserv ON Reserv.reserv_id = Table.reserv_id  
    WHERE Reserv.start_date > CURRENT_DATE
    OR Reserv.end_date < CURRENT_DATE 
    OR Table.reserv_id IS NULL;  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...