在hsqldb 2.2.9中更新视图

时间:2013-11-01 15:07:47

标签: sql hsqldb

我在表格 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 个答案:

答案 0 :(得分:0)

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

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