Я использую LibreOffice Base для создания еженедельных отчетов. У меня есть одна таблица (с именем time_spent), которая содержит много нормализованных данных, и я использую представления для обработки, необходимой для создания необходимых мне отчетов.

Каждую неделю я добавляю новые данные в эту таблицу и хочу экспортировать свежие отчеты только за эту неделю.

Вместо того, чтобы заново создавать все представления, которые используются для создания моего отчета каждую неделю, я надеялся создать представление с именем time_spent_selection , которое по сути является SELECT * FROM "time_spent" WHERE "week" = '2015-04' , и используйте это, чтобы собрать все последующие представления. Тогда каждую неделю нужно будет только изменить это WHERE и автоматически получать отчеты за правильную неделю.

Однако база LibreOffice запрещает сохранять любые изменения, внесенные в представление time_spent_selection со следующим сообщением об ошибке:

На таблицу ссылается view: ошибки в операторе [DROP VIEW "time_spent_selection"]

диалог сообщения об ошибке

Здесь, bugs являются одним из представлений, которые ссылаются на time_spent_selection в своем определении.

Вопрос:

Как я могу принудительно изменить это представление, от которого зависят другие представления?

Я понимаю, что - если бы это было возможно - все взгляды пришлось бы пересчитать, и это именно то, чего я хочу.

1 ответ1

1

Это может быть ограничением серверной базы данных, которая по умолчанию является базой данных HyperSQL (HSQLDB) версии 1.8 - если вы используете серверную часть по умолчанию, документация находится по адресу http://www.hsqldb.org/doc/1.8/guide/ch09.html и не имеет ничего похожего на ALTER VIEW или REPLACE VIEW. Вы должны использовать DROP VIEW, который разрешен только при отсутствии зависимостей.

У вас есть возможность обновить текущую версию HSQLDB (версия 2.3), которая поддерживает оператор ALTER VIEW (http://hsqldb.org/doc/guide/guide.html#dbc_view_creation). GUI, вероятно, все еще не поддерживает транзакцию, но вы можете использовать окно Tools-> SQL, чтобы напрямую выполнить команду ALTER VIEW для базы данных. Инструкции по обновлению компонента базы данных до версии 2.3 находятся в этой ветке форума: [Учебник] Разделение "встроенной базы данных HSQL"

Альтернативно, вместо жесткого кодирования конкретной даты в SQL представления, используйте представление для таблицы фильтра / фиктивной таблицы для даты. Затем вы можете просто открыть таблицу "reportDate" с одной колонкой и одной строкой и изменять там каждую неделю, не касаясь представления.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .