2016-07-25 8 views
2

Я хотел бы обновить представление в HSQL, не повторяя одно и то же заявление снова и снова. У меня есть КОНТАКТ КОНТАКТЫ с ID, First_NAME и LAST_NAME. У меня также есть VIEW для этой таблицы, который я создал сОбновить представление в HSQL

CREATE VIEW IDGREATERTHREE AS SELECT * FROM CONTACTS WHERE ID > 3; 

Как я могу обновить мой взгляд после того, как я добавил новый столбец в моей таблице. Я хочу, чтобы обновить таблицу без ничего подобного:

ALTER VIEW IDGREATERTHREE AS SELECT * FROM CONTACTS WHERE ID > 3; 

Я хотел бы найти способ, чтобы обновить свою неверную точку зрения таким же образом, как и в Oracle:

ALTER VIEW IDGREATERTHREE COMPILE; 

Я также ищет способ выбрать только недопустимые виды. С SELECT * FROM INFORMATION_SCHEMA.VIEWS Я не вижу никакой разницы между недопустимым и недействительным представлением.

ответ

0

Решение должно состоять в том, чтобы написать ON DDL триггер.

В этом ON DDL триггере вы проверяете, изменили ли вы свой стол.

Если это так, то вы используете Dynamic SQL для воссоздания вашего представления. Это можно сделать с (вы отметили ). Существует достаточно документации по созданию триггеров и динамического SQL в Интернете.

0

HSQLDB не может иметь недопустимые виды. Когда вы создаете представление, SELECT * FROM CONTACTS будет расширен до фактических имен столбцов. Когда вы добавляете столбец в таблицу, представление перекомпилируется с именами исходных столбцов, а новый столбец не включается.

Смежные вопросы