尝试修改 PostgreSQL 视图中使用的列时,通常需要删除视图、更改列,并重新创建视图。这个过程可能是乏味且耗时的。有没有办法减轻这种负担?
永久解决方案:
避免使用具有定义长度的字符变化(n)数据类型。相反,请使用不带长度说明符的 text 或 varchar 数据类型。如有必要,请使用 CHECK 约束强制执行最大长度。这种方法消除了在更改列类型时修改视图的需要。
CREATE TABLE monkey (name text NOT NULL); ALTER TABLE monkey ADD CONSTRAINT monkey_name_len CHECK (length(name) < 101);
PostgreSQL 视图不仅仅是子查询的别名,而是具有自己的规则结构的专用表。因此,在修改基础表时,通常还需要修改依赖视图。 ALTER VIEW 语句可以更改视图属性,但不能更改基础查询。
要更改查询,请使用 CREATE OR REPLACE VIEW。但是,当修改结果列数据类型时,无法执行此操作。在这种情况下,必须删除旧视图并创建新视图。此操作不会删除任何数据,但可能会删除与视图关联的任何其他属性。
以上是PostgreSQL 视图:如何修改视图中使用的列而不删除并重新创建它?的详细内容。更多信息请关注PHP中文网其他相关文章!