您的位置:58编程 > PostgreSQL ALTER VIEW

PostgreSQL ALTER VIEW

2023-03-31 16:33

 PostgreSQL ALTER VIEW

ALTER VIEW — 更改一个视图的定义

大纲

ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT
ALTER VIEW [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
ALTER VIEW [ IF EXISTS ] name RENAME TO new_name
ALTER VIEW [ IF EXISTS ] name SET SCHEMA new_schema
ALTER VIEW [ IF EXISTS ] name SET ( view_option_name [= view_option_value] [, ... ] )
ALTER VIEW [ IF EXISTS ] name RESET ( view_option_name [, ... ] )

描述

ALTER VIEW更改一个视图的多种辅助属性(如果想要 修改视图的查询定义,应使用CREATE OR REPLACE VIEW)。

要使用ALTER VIEW,你必须拥有该视图。要更改一个视图的模式, 你还必须具有新模式上的CREATE特权。要更改拥有者,你还必须 是新拥有角色的一个直接或者间接成员,并且该角色必须具有该视图的模式上的 CREATE特权(这些限制强制修改拥有者不能做一些通过删除和重 建视图做不到的事情。不过,一个超级用户怎么都能更改任何视图的所有权。)。

参数

name

一个现有视图的名称(可以是模式限定的)。

column_name

现有列的名称。

new_column_name

现有列的新名称。

IF EXISTS

该视图不存在时不要抛出一个错误。这种情况下会发出一个提示。

SET/DROP DEFAULT

这些形式为一个列设置或者移除默认值。对于任何在该视图上的 INSERT或者UPDATE命令,一个视图列的默认值 会在引用该视图的任何规则或触发器之前被替换进来。因此,该视图的默认值将会 优先于来自底层关系的任何默认值。

new_owner

该视图的新拥有者的用户名。

new_name

该视图的新名称。

new_schema

该视图的新模式。

SET ( view_option_name [= view_option_value] [, ... ] )
RESET ( view_option_name [, ... ] )

设置或者重置一个视图选项。当前支持的选项有:

check_option (enum)

更改该视图的检查选项。值必须是local 或者cascaded

security_barrier (boolean)

更改该视图的安全屏障属性。值必须是一个布尔值,如 true或者false

注解

由于历史原因,ALTER TABLE也可以用于视图,但是 只允许等效于以上形式的ALTER TABLE变体用于视图。

示例

把视图foo重命名为 bar

ALTER VIEW foo RENAME TO bar;

要为一个可更新视图附加一个默认列值:

CREATE TABLE base_table (id int, ts timestamptz);
CREATE VIEW a_view AS SELECT * FROM base_table;
ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now();
INSERT INTO base_table(id) VALUES(1);  -- ts will receive a NULL
INSERT INTO a_view(id) VALUES(2);  -- ts will receive the current time

兼容性

ALTER VIEW是一种PostgreSQL 的 SQL 标准扩展。

另见

CREATE VIEW , DROP VIEW


阅读全文
以上是58编程为你收集整理的 PostgreSQL ALTER VIEW全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  •  PostgreSQL COMMIT

    PostgreSQL COMMIT

    COMMIT — 提交当前事务大纲COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]描述 COMMIT提交当前事务。所有由该 事务所作的...

  •  PostgreSQL CREATE DATABASE

    PostgreSQL CREATE DATABASE

    CREATE DATABASE — 创建一个新数据库大纲CREATE DATABASE name[ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] ...

  •  PostgreSQL CREATE INDEX

    PostgreSQL CREATE INDEX

    CREATE INDEX — 定义一个新索引大纲CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_...

  •  PostgreSQL 日期/时间支持

    PostgreSQL 日期/时间支持

    目录B.1. 日期/时间输入解释B.2. 处理无效或不明确的时间戳B.3. 日期/时间关键词B.4. 日期/时间配置文件B.5. POSIX 时区规范B.6....

  •  PostgreSQL CREATE TABLESPACE

    PostgreSQL CREATE TABLESPACE

    CREATE TABLESPACE — 定义一个新的表空间大纲CREATE TABLESPACE tablespace_name[ OWNER { new_owner | CURRENT_USER | SESSION...

  •  PostgreSQL DROP EXTENSION

    PostgreSQL DROP EXTENSION

    DROP EXTENSION — 移除一个扩展大纲DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]描述 DROP EXTENSION从...

  •  PostgreSQL DROP OPERATOR

    PostgreSQL DROP OPERATOR

    DROP OPERATOR — 移除一个操作符大纲DROP OPERATOR [ IF EXISTS ] name ( { left_type | NONE } , { right_type | NONE } ) [, ...

  •  PostgreSQL DROP TABLESPACE

    PostgreSQL DROP TABLESPACE

    DROP TABLESPACE — 移除一个表空间大纲DROP TABLESPACE [ IF EXISTS ] name描述 DROP TABLESPACE从系统中移除一个表空间。一个...

  • xsl:if XSL-FO 列表

    xsl:if XSL-FO 列表

    XSL-FO 列表 在 XSL-FO 中,怎么定义列表?XSL-FO 使用 fo:list-block 元素来定义列表。XSL-FO 列表块(List Blocks) 有四种 XS...

  •  XSL-FO block-container 对象

    XSL-FO block-container 对象

    XSL-FO block-container 对象XSL-FO 参考手册本节介绍的是 XSL-FO 中的 block-container 对象,你将了解该对象的定义、语法以及...

© 2024 58编程 58biancheng.com 版权所有 联系我们
桂ICP备12005667号-32 Powered by CMS