SQL DROP VIEW 语句中的删除行为



是语句:

DROP VIEW <view-name>

有效的 SQL92 语法?在某些数据库(例如Postgres,Redshift(中,可以选择显式定义删除行为

DROP VIEW <view-name> [RESTRICT|CASCADE]

而对于其他人来说,这是强制性的(例如Netteza(

DROP VIEW <view-name> {RESTRICT|CASCADE}

或者只是语法中不支持(例如 Transact-sql(。

sql92 标准对有关丢弃行为的删除视图语法有何规定? 我没有发现任何提及在 sql92 语法中删除行为的内容。

ANSI-92 标准中提到的RESTRICTCASCADE在第 11.20 节中作为<drop behavior>限定符

如果指定了 LIMIT,则不应在 中引用 V 任何视图描述符或任何断言描述符或约束描述符

注意:如果指定了级联,则任何此类依赖对象 将在执行规范时删除- 在本分项的一般规则中规定。

在此处搜索<drop behavior>,第 6 次出现视图
https://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

您可以查看 wiki 文章 .在底部的">外部链接"中,您可以找到SQL-92标准。向下滚动到">X3H2-92-154/DBL CBR-002,11.20 ",在那里您可以找到:

<drop view statement> ::=
DROP VIEW <table name> <drop behavior>
Note: If CASCADE is specified, then any such dependent object
will be dropped by the execution of the <revoke statement> spec-
ified in the General Rules of this Subclause.

是的,每个SQL 92标准都有,语法是

<drop view statement> ::=
DROP VIEW <table name> <drop behavior>

语法规则

1( 设 V 为由 标识的表,并设 VN 就是.由显式或标识的架构 VN 的隐式架构名称应包含 V 的描述符。

2( V 应为查看表。

3( 如果指定了 LIMIT,则不得在 任何视图描述符或任何断言描述符或约束描述符。

Note: If CASCADE is specified, then any such dependent object
will be dropped by the execution of the <revoke statement> spec-
ified in the General Rules of this Subclause.

访问规则

1( 电流应等于 拥有由 标识的架构 由 VN 标识的表。

一般规则

1( 设 A 为当前 .以下 在"_SYSTEM"电流下有效执行,无需进一步访问 规则检查:

REVOKE ALL PRIVILEGES ON VN FROM A CASCADE

2( 已识别的视图及其描述符被销毁。

分级规则

1( 以下限制适用于中间 SQL:

None.

2( 除条目 SQL 外,以下限制还适用于 任何中间 SQL 限制:

a) Conforming Entry SQL language shall not contain a <drop view
statement>.

最新更新