在 hsqldb 2.2.9 中更新视图

Posted

技术标签:

【中文标题】在 hsqldb 2.2.9 中更新视图【英文标题】:Updating Views in hsqldb 2.2.9 【发布时间】:2013-11-01 15:07:47 【问题描述】:

我在 x 表上有一个视图 v。后台任务创建一个新表 y,视图 v 现在应该指向该表。为此,我使用以下命令

ALTER VIEW PUBLIC.v AS SELECT id, name, price FROM y

之后我确认视图 v 指向表 y,到目前为止一切正常。但是,如果我现在尝试删除旧表 x,我会收到以下错误消息

Error code -5502, SQL state 42502: dependent objects exist: PUBLIC.V in statement [drop table x]

所以如果使用以下命令检查系统视图表INFORMATION_SCHEMA.VIEWS

select * from INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA='PUBLIC' AND TABLE_NAME='V'

它给了我以下视图定义:

SELECT T.id,T.name,T.price FROM PUBLIC.x

这表示视图指向旧表 x。我有办法更新定义吗?遗憾的是,删除并重新创建视图不是我的选择,因为我有其他视图取决于此视图,我不想在每次更新时都重新创建它们。

【问题讨论】:

【参考方案1】:

这是一个错误。将在下次更新(2.3.2 版)中修复。

另一种方法是关闭数据库然后重新打开它

【讨论】:

以上是关于在 hsqldb 2.2.9 中更新视图的主要内容,如果未能解决你的问题,请参考以下文章

HSQLDB 视图 (INNER-JOIN) 在运行时出错

HSQLDB 索引不一致

HSQLDB 2.2.9 运行脚本 + SqlFile

HSQLDB 2.2.9:理解 server.properties 文件

hsqldb 中,如何指定数据库文件存放位置?

使用 HSQLDB 比较 Openoffice 数据库中的日期