'INDEX'是否有效的SQL ANSI ISO标准关键字/保留字?

Tom*_*han 3 sql ansi-sql

我已经做过一些关于'INDEX'是否是ANSI SQL中的关键字的研究,但我没有运气,尤其是2008和2011标准.

任何人都知道这是否是一个有效的ANSI ISO SQL关键字?

RTh*_*mas 7

用于创建,更改或管理索引的SQL语言没有ANSI标准.所以不,INDEX不是ANSI标准的关键字(保留字).

Kevin Kline在他的" 果壳中的SQL"一书中特别支持我.他指出这是创建索引的语法在供应商之间差异很大的原因之一.

作为进一步的间接证据,您还会注意到各种供应商在其SQL文档中提到有关INDEX的语句是ANSI标准的扩展.例如,请参阅此处的IBM doc for ALTER INDEX.

这也是ANSI SQL保留字的一个方便列表 - 但仅限于2003.


作为旁注:我曾经见过ANSI在索引方面提到的唯一一次是在谈论唯一索引(通常只是一个唯一约束)如何处理空值时.根据ANSI,null不等于null; 因此,唯一索引应允许多个空值,因为每个ANSI它们彼此不相等.有些引擎遵循这条规则 - 其他引擎则没有.在这种情况下,ANSI标准仅指两个空值是相等还是唯一...标准与索引无关.可能有其他ANSI标准对INDEX有类似的影响,但没有关于它们周围的DDL.