Вопрос:

Вопрос:

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

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

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

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

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

диалоговое окно сообщения об ошибке введите описание изображения здесь

Вот bugsодно из мнений, time_spent_selectionна которое ссылается его определение.

Вопрос:

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

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

решение1

Это может быть ограничением внутренней базы данных, которая по умолчанию представляет собой HyperSQL Database (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). Графический интерфейс пользователя, вероятно, все еще не будет поддерживать транзакцию, но вы можете использовать окно Tools->SQL, чтобы напрямую ввести команду ALTER VIEW в базу данных. Инструкции по обновлению компонента базы данных до версии 2.3 находятся в этой теме форума:[Учебник] Разделение «встроенной базы данных HSQL»

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

Связанный контент