↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
历史版本。 PostgreSQL 7.4 已结束支持。 请参阅 当前版本手册.

附录 C. SQL 关键字

表 C.1列出了在 SQL 标准以及 PostgreSQL 7.4.30 中被视为关键字的所有词元。背景信息可参见第 4.1.1 节。

SQL 区分保留关键字和非保留关键字。根据标准,保留关键字才是真正的关键字,它们绝不允许作为标识符使用。非保留关键字只在特定上下文中具有特殊含义,在其他上下文中则可以作为标识符使用。大多数非保留关键字实际上是 SQL 规定的内置表和内置函数名称。非保留关键字这一概念,本质上只是为了声明某个词在某些上下文中附带了预定义含义。

在PostgreSQL解析器中,情况要更复杂一些。这里的词元分属若干不同类别,从绝不能用作标识符的词元,到在解析器中完全没有特殊地位、只是被当作普通标识符处理的词元都有。(后一类通常就是 SQL 规定的函数名。)即使是保留关键字,在PostgreSQL中也不是绝对保留的,它们仍然可以用作列标签(例如SELECT 55 AS CHECK,尽管CHECK是一个保留关键字)。

在表 C.1中PostgreSQL 一列里,我们把解析器明确识别、但在大多数或所有期望出现标识符的上下文中都允许使用的那些关键字归类为“非保留”。某些原本属于非保留的关键字不能用作函数名或数据类型名,因此会相应地加以标记。(这类词大多表示具有特殊语法的内置函数或数据类型。函数或类型本身仍然可用,只是不能由用户重新定义。)标记为“保留”的是那些只允许用作“AS”列标签名(也许还有极少数其他上下文)的词元。有些保留关键字还允许用作函数名;这一点也会在表中给出。

一般来说,如果你在某条命令中把这里列出的关键字当作标识符使用,并因此遇到意外的解析器错误,应尝试为该标识符加上引号,看看问题是否消失。

在研读表 C.1之前,有一点非常重要:某个关键字在PostgreSQL中不被保留,并不意味着与该词相关的特性尚未实现;反过来,某个关键字的存在也不意味着相应特性一定存在。

表 C.1. SQL 关键字

关键字PostgreSQLSQL 99SQL 92
ABORT非保留  
ABS 非保留 
ABSOLUTE非保留保留保留
ACCESS非保留  
ACTION非保留保留保留
ADA 非保留非保留
ADD非保留保留保留
ADMIN 保留 
AFTER非保留保留 
AGGREGATE非保留保留 
ALIAS 保留 
ALL保留保留保留
ALLOCATE 保留保留
ALTER非保留保留保留
ANALYSE保留  
ANALYZE保留  
AND保留保留保留
ANY保留保留保留
ARE 保留保留
ARRAY保留保留 
AS保留保留保留
ASC保留保留保留
ASENSITIVE 非保留 
ASSERTION非保留保留保留
ASSIGNMENT非保留非保留 
ASYMMETRIC 非保留 
AT非保留保留保留
ATOMIC 非保留 
AUTHORIZATION保留(可用作函数)保留保留
AVG 非保留保留
BACKWARD非保留  
BEFORE非保留保留 
BEGIN非保留保留保留
BETWEEN保留(可用作函数)非保留保留
BIGINT非保留(不可用作函数或类型名)  
BINARY保留(可用作函数)保留 
BIT非保留(不可用作函数或类型名)保留保留
BITVAR 非保留 
BIT_LENGTH 非保留保留
BLOB 保留 
BOOLEAN非保留(不可用作函数或类型名)保留 
BOTH保留保留保留
BREADTH 保留 
BY非保留保留保留
C 非保留非保留
CACHE非保留  
CALL 保留 
CALLED非保留非保留 
CARDINALITY 非保留 
CASCADE非保留保留保留
CASCADED 保留保留
CASE保留保留保留
CAST保留保留保留
CATALOG 保留保留
CATALOG_NAME 非保留非保留
CHAIN非保留非保留 
CHAR非保留(不可用作函数或类型名)保留保留
CHARACTER非保留(不可用作函数或类型名)保留保留
CHARACTERISTICS非保留  
CHARACTER_LENGTH 非保留保留
CHARACTER_SET_CATALOG 非保留非保留
CHARACTER_SET_NAME 非保留非保留
CHARACTER_SET_SCHEMA 非保留非保留
CHAR_LENGTH 非保留保留
CHECK保留保留保留
CHECKED 非保留 
CHECKPOINT非保留  
CLASS非保留保留 
CLASS_ORIGIN 非保留非保留
CLOB 保留 
CLOSE非保留保留保留
CLUSTER非保留  
COALESCE非保留(不可用作函数或类型名)非保留保留
COBOL 非保留非保留
COLLATE保留保留保留
COLLATION 保留保留
COLLATION_CATALOG 非保留非保留
COLLATION_NAME 非保留非保留
COLLATION_SCHEMA 非保留非保留
COLUMN保留保留保留
COLUMN_NAME 非保留非保留
COMMAND_FUNCTION 非保留非保留
COMMAND_FUNCTION_CODE 非保留 
COMMENT非保留  
COMMIT非保留保留保留
COMMITTED非保留非保留非保留
COMPLETION 保留 
CONDITION_NUMBER 非保留非保留
CONNECT 保留保留
CONNECTION 保留保留
CONNECTION_NAME 非保留非保留
CONSTRAINT保留保留保留
CONSTRAINTS非保留保留保留
CONSTRAINT_CATALOG 非保留非保留
CONSTRAINT_NAME 非保留非保留
CONSTRAINT_SCHEMA 非保留非保留
CONSTRUCTOR 保留 
CONTAINS 非保留 
CONTINUE 保留保留
CONVERSION非保留  
CONVERT非保留(不可用作函数或类型名)非保留保留
COPY非保留  
CORRESPONDING 保留保留
COUNT 非保留保留
CREATE保留保留保留
CREATEDB非保留  
CREATEUSER非保留  
CROSS保留(可用作函数)保留保留
CUBE 保留 
CURRENT 保留保留
CURRENT_DATE保留保留保留
CURRENT_PATH 保留 
CURRENT_ROLE 保留 
CURRENT_TIME保留保留保留
CURRENT_TIMESTAMP保留保留保留
CURRENT_USER保留保留保留
CURSOR非保留保留保留
CURSOR_NAME 非保留非保留
CYCLE非保留保留 
DATA 保留非保留
DATABASE非保留  
DATE 保留保留
DATETIME_INTERVAL_CODE 非保留非保留
DATETIME_INTERVAL_PRECISION 非保留非保留
DAY非保留保留保留
DEALLOCATE非保留保留保留
DEC非保留(不可用作函数或类型名)保留保留
DECIMAL非保留(不可用作函数或类型名)保留保留
DECLARE非保留保留保留
DEFAULT保留保留保留
DEFAULTS非保留  
DEFERRABLE保留保留保留
DEFERRED非保留保留保留
DEFINED 非保留 
DEFINER非保留非保留 
DELETE非保留保留保留
DELIMITER非保留  
DELIMITERS非保留  
DEPTH 保留 
DEREF 保留 
DESC保留保留保留
DESCRIBE 保留保留
DESCRIPTOR 保留保留
DESTROY 保留 
DESTRUCTOR 保留 
DETERMINISTIC 保留 
DIAGNOSTICS 保留保留
DICTIONARY 保留 
DISCONNECT 保留保留
DISPATCH 非保留 
DISTINCT保留保留保留
DO保留  
DOMAIN非保留保留保留
DOUBLE非保留保留保留
DROP非保留保留保留
DYNAMIC 保留 
DYNAMIC_FUNCTION 非保留非保留
DYNAMIC_FUNCTION_CODE 非保留 
EACH非保留保留 
ELSE保留保留保留
ENCODING非保留  
ENCRYPTED非保留  
END保留保留保留
END-EXEC 保留保留
EQUALS 保留 
ESCAPE非保留保留保留
EVERY 保留 
EXCEPT保留保留保留
EXCEPTION 保留保留
EXCLUDING非保留  
EXCLUSIVE非保留  
EXEC 保留保留
EXECUTE非保留保留保留
EXISTING 非保留 
EXISTS非保留(不可用作函数或类型名)非保留保留
EXPLAIN非保留  
EXTERNAL非保留保留保留
EXTRACT非保留(不可用作函数或类型名)非保留保留
FALSE保留保留保留
FETCH非保留保留保留
FINAL 非保留 
FIRST非保留保留保留
FLOAT非保留(不可用作函数或类型名)保留保留
FOR保留保留保留
FORCE非保留  
FOREIGN保留保留保留
FORTRAN 非保留非保留
FORWARD非保留  
FOUND 保留保留
FREE 保留 
FREEZE保留(可用作函数)  
FROM保留保留保留
FULL保留(可用作函数)保留保留
FUNCTION非保留保留 
G 非保留 
GENERAL 保留 
GENERATED 非保留 
GET 保留保留
GLOBAL非保留保留保留
GO 保留保留
GOTO 保留保留
GRANT保留保留保留
GRANTED 非保留 
GROUP保留保留保留
GROUPING 保留 
HANDLER非保留  
HAVING保留保留保留
HIERARCHY 非保留 
HOLD非保留非保留 
HOST 保留 
HOUR非保留保留保留
IDENTITY 保留保留
IGNORE 保留 
ILIKE保留(可用作函数)  
IMMEDIATE非保留保留保留
IMMUTABLE非保留  
IMPLEMENTATION 非保留 
IMPLICIT非保留  
IN保留(可用作函数)保留保留
INCLUDING非保留  
INCREMENT非保留  
INDEX非保留  
INDICATOR 保留保留
INFIX 非保留 
INHERITS非保留  
INITIALIZE 保留 
INITIALLY保留保留保留
INNER保留(可用作函数)保留保留
INOUT非保留保留 
INPUT非保留保留保留
INSENSITIVE非保留非保留保留
INSERT非保留保留保留
INSTANCE 非保留 
INSTANTIABLE 非保留 
INSTEAD非保留  
INT非保留(不可用作函数或类型名)保留保留
INTEGER非保留(不可用作函数或类型名)保留保留
INTERSECT保留保留保留
INTERVAL非保留(不可用作函数或类型名)保留保留
INTO保留保留保留
INVOKER非保留非保留 
IS保留(可用作函数)保留保留
ISNULL保留(可用作函数)  
ISOLATION非保留保留保留
ITERATE 保留 
JOIN保留(可用作函数)保留保留
K 非保留 
KEY非保留保留保留
KEY_MEMBER 非保留 
KEY_TYPE 非保留 
LANCOMPILER非保留  
LANGUAGE非保留保留保留
LARGE 保留 
LAST非保留保留保留
LATERAL 保留 
LEADING保留保留保留
LEFT保留(可用作函数)保留保留
LENGTH 非保留非保留
LESS 保留 
LEVEL非保留保留保留
LIKE保留(可用作函数)保留保留
LIMIT保留保留 
LISTEN非保留  
LOAD非保留  
LOCAL非保留保留保留
LOCALTIME保留保留 
LOCALTIMESTAMP保留保留 
LOCATION非保留  
LOCATOR 保留 
LOCK非保留  
LOWER 非保留保留
M 非保留 
MAP 保留 
MATCH非保留保留保留
MAX 非保留保留
MAXVALUE非保留  
MESSAGE_LENGTH 非保留非保留
MESSAGE_OCTET_LENGTH 非保留非保留
MESSAGE_TEXT 非保留非保留
METHOD 非保留 
MIN 非保留保留
MINUTE非保留保留保留
MINVALUE非保留  
MOD 非保留 
MODE非保留  
MODIFIES 保留 
MODIFY 保留 
MODULE 保留保留
MONTH非保留保留保留
MORE 非保留非保留
MOVE非保留  
MUMPS 非保留非保留
NAME 非保留非保留
NAMES非保留保留保留
NATIONAL非保留保留保留
NATURAL保留(可用作函数)保留保留
NCHAR非保留(不可用作函数或类型名)保留保留
NCLOB 保留 
NEW保留保留 
NEXT非保留保留保留
NO非保留保留保留
NOCREATEDB非保留  
NOCREATEUSER非保留  
NONE非保留(不可用作函数或类型名)保留 
NOT保留保留保留
NOTHING非保留  
NOTIFY非保留  
NOTNULL保留(可用作函数)  
NULL保留保留保留
NULLABLE 非保留非保留
NULLIF非保留(不可用作函数或类型名)非保留保留
NUMBER 非保留非保留
NUMERIC非保留(不可用作函数或类型名)保留保留
OBJECT 保留 
OCTET_LENGTH 非保留保留
OF非保留保留保留
OFF保留保留 
OFFSET保留  
OIDS非保留  
OLD保留保留 
ON保留保留保留
ONLY保留保留保留
OPEN 保留保留
OPERATION 保留 
OPERATOR非保留  
OPTION非保留保留保留
OPTIONS 非保留 
OR保留保留保留
ORDER保留保留保留
ORDINALITY 保留 
OUT非保留保留 
OUTER保留(可用作函数)保留保留
OUTPUT 保留保留
OVERLAPS保留(可用作函数)非保留保留
OVERLAY非保留(不可用作函数或类型名)非保留 
OVERRIDING 非保留 
OWNER非保留  
PAD 保留保留
PARAMETER 保留 
PARAMETERS 保留 
PARAMETER_MODE 非保留 
PARAMETER_NAME 非保留 
PARAMETER_ORDINAL_POSITION 非保留 
PARAMETER_SPECIFIC_CATALOG 非保留 
PARAMETER_SPECIFIC_NAME 非保留 
PARAMETER_SPECIFIC_SCHEMA 非保留 
PARTIAL非保留保留保留
PASCAL 非保留非保留
PASSWORD非保留  
PATH非保留保留 
PENDANT非保留  
PLACING保留  
PLI 非保留非保留
POSITION非保留(不可用作函数或类型名)非保留保留
POSTFIX 保留 
PRECISION非保留保留保留
PREFIX 保留 
PREORDER 保留 
PREPARE非保留保留保留
PRESERVE非保留保留保留
PRIMARY保留保留保留
PRIOR非保留保留保留
PRIVILEGES非保留保留保留
PROCEDURAL非保留  
PROCEDURE非保留保留保留
PUBLIC 保留保留
READ非保留保留保留
READS 保留 
REAL非保留(不可用作函数或类型名)保留保留
RECHECK非保留  
RECURSIVE 保留 
REF 保留 
REFERENCES保留保留保留
REFERENCING 保留 
REINDEX非保留  
RELATIVE非保留保留保留
RENAME非保留  
REPEATABLE 非保留非保留
REPLACE非保留  
RESET非保留  
RESTART非保留  
RESTRICT非保留保留保留
RESULT 保留 
RETURN 保留 
RETURNED_LENGTH 非保留非保留
RETURNED_OCTET_LENGTH 非保留非保留
RETURNED_SQLSTATE 非保留非保留
RETURNS非保留保留 
REVOKE非保留保留保留
RIGHT保留(可用作函数)保留保留
ROLE 保留 
ROLLBACK非保留保留保留
ROLLUP 保留 
ROUTINE 保留 
ROUTINE_CATALOG 非保留 
ROUTINE_NAME 非保留 
ROUTINE_SCHEMA 非保留 
ROW非保留(不可用作函数或类型名)保留 
ROWS非保留保留保留
ROW_COUNT 非保留非保留
RULE非保留  
SAVEPOINT 保留 
SCALE 非保留非保留
SCHEMA非保留保留保留
SCHEMA_NAME 非保留非保留
SCOPE 保留 
SCROLL非保留保留保留
SEARCH 保留 
SECOND非保留保留保留
SECTION 保留保留
SECURITY非保留非保留 
SELECT保留保留保留
SELF 非保留 
SENSITIVE 非保留 
SEQUENCE非保留保留 
SERIALIZABLE非保留非保留非保留
SERVER_NAME 非保留非保留
SESSION非保留保留保留
SESSION_USER保留保留保留
SET非保留保留保留
SETOF非保留(不可用作函数或类型名)  
SETS 保留 
SHARE非保留  
SHOW非保留  
SIMILAR保留(可用作函数)非保留 
SIMPLE非保留非保留 
SIZE 保留保留
SMALLINT非保留(不可用作函数或类型名)保留保留
SOME保留保留保留
SOURCE 非保留 
SPACE 保留保留
SPECIFIC 保留 
SPECIFICTYPE 保留 
SPECIFIC_NAME 非保留 
SQL 保留保留
SQLCODE  保留
SQLERROR  保留
SQLEXCEPTION 保留 
SQLSTATE 保留保留
SQLWARNING 保留 
STABLE非保留  
START非保留保留 
STATE 保留 
STATEMENT非保留保留 
STATIC 保留 
STATISTICS非保留  
STDIN非保留  
STDOUT非保留  
STORAGE非保留  
STRICT非保留  
STRUCTURE 保留 
STYLE 非保留 
SUBCLASS_ORIGIN 非保留非保留
SUBLIST 非保留 
SUBSTRING非保留(不可用作函数或类型名)非保留保留
SUM 非保留保留
SYMMETRIC 非保留 
SYSID非保留  
SYSTEM 非保留 
SYSTEM_USER 保留保留
TABLE保留保留保留
TABLE_NAME 非保留非保留
TEMP非保留  
TEMPLATE非保留  
TEMPORARY非保留保留保留
TERMINATE 保留 
THAN 保留 
THEN保留保留保留
TIME非保留(不可用作函数或类型名)保留保留
TIMESTAMP非保留(不可用作函数或类型名)保留保留
TIMEZONE_HOUR 保留保留
TIMEZONE_MINUTE 保留保留
TO保留保留保留
TOAST非保留  
TRAILING保留保留保留
TRANSACTION非保留保留保留
TRANSACTIONS_COMMITTED 非保留 
TRANSACTIONS_ROLLED_BACK 非保留 
TRANSACTION_ACTIVE 非保留 
TRANSFORM 非保留 
TRANSFORMS 非保留 
TRANSLATE 非保留保留
TRANSLATION 保留保留
TREAT非保留(不可用作函数或类型名)保留 
TRIGGER非保留保留 
TRIGGER_CATALOG 非保留 
TRIGGER_NAME 非保留 
TRIGGER_SCHEMA 非保留 
TRIM非保留(不可用作函数或类型名)非保留保留
TRUE保留保留保留
TRUNCATE非保留  
TRUSTED非保留  
TYPE非保留非保留非保留
UNCOMMITTED 非保留非保留
UNDER 保留 
UNENCRYPTED非保留  
UNION保留保留保留
UNIQUE保留保留保留
UNKNOWN非保留保留保留
UNLISTEN非保留  
UNNAMED 非保留非保留
UNNEST 保留 
UNTIL非保留  
UPDATE非保留保留保留
UPPER 非保留保留
USAGE非保留保留保留
USER保留保留保留
USER_DEFINED_TYPE_CATALOG 非保留 
USER_DEFINED_TYPE_NAME 非保留 
USER_DEFINED_TYPE_SCHEMA 非保留 
USING保留保留保留
VACUUM非保留  
VALID非保留  
VALIDATOR非保留  
VALUE 保留保留
VALUES非保留保留保留
VARCHAR非保留(不可用作函数或类型名)保留保留
VARIABLE 保留 
VARYING非保留保留保留
VERBOSE保留(可用作函数)  
VERSION非保留  
VIEW非保留保留保留
VOLATILE非保留  
WHEN保留保留保留
WHENEVER 保留保留
WHERE保留保留保留
WITH非保留保留保留
WITHOUT非保留保留 
WORK非保留保留保留
WRITE非保留保留保留
YEAR非保留保留保留
ZONE非保留保留保留

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.