<acronym>SQL</acronym> Key Words key words list of lists all tokens that are key words in the SQL standard and in PostgreSQL &version;. Background information can be found in . SQL distinguishes between reserved and non-reserved key words. According to the standard, reserved key words are the only real key words; they are never allowed as identifiers. Non-reserved key words only have a special meaning in particular contexts and can be used as identifiers in other contexts. Most non-reserved key words are actually the names of built-in tables and functions specified by SQL. The concept of non-reserved key words essentially only exists to declare that some predefined meaning is attached to a word in some contexts. In the PostgreSQL parser life is a bit more complicated. There are several different classes of tokens ranging from those that can never be used as an identifier to those that have absolutely no special status in the parser as compared to an ordinary identifier. (The latter is usually the case for functions specified by SQL.) Even reserved key words are not completely reserved in PostgreSQL, but can be used as column labels (for example, SELECT 55 AS CHECK, even though CHECK is a reserved key word). In in the column for PostgreSQL we classify as non-reserved those key words that are explicitly known to the parser but are allowed in most or all contexts where an identifier is expected. Some key words that are otherwise non-reserved cannot be used as function or data type names and are marked accordingly. (Most of these words represent built-in functions or data types with special syntax. The function or type is still available but it cannot be redefined by the user.) Labeled reserved are those tokens that are only allowed as AS column label names (and perhaps in very few other contexts). Some reserved key words are allowable as names for functions; this is also shown in the table. As a general rule, if you get spurious parser errors for commands that contain any of the listed key words as an identifier you should try to quote the identifier to see if the problem goes away. It is important to understand before studying that the fact that a key word is not reserved in PostgreSQL does not mean that the feature related to the word is not implemented. Conversely, the presence of a key word does not indicate the existence of a feature. <acronym>SQL</acronym> Key Words Key Word PostgreSQL SQL 99 SQL 92 ABORT non-reserved ABS non-reserved ABSOLUTE non-reserved reserved reserved ACCESS non-reserved ACTION non-reserved reserved reserved ADA non-reserved non-reserved ADD non-reserved reserved reserved ADMIN reserved AFTER non-reserved reserved AGGREGATE non-reserved reserved ALIAS reserved ALL reserved reserved reserved ALLOCATE reserved reserved ALTER non-reserved reserved reserved ANALYSE reserved ANALYZE reserved AND reserved reserved reserved ANY reserved reserved reserved ARE reserved reserved ARRAY reserved AS reserved reserved reserved ASC reserved reserved reserved ASENSITIVE non-reserved ASSERTION non-reserved reserved reserved ASSIGNMENT non-reserved non-reserved ASYMMETRIC non-reserved AT non-reserved reserved reserved ATOMIC non-reserved AUTHORIZATION reserved (can be function) reserved reserved AVG non-reserved reserved BACKWARD non-reserved BEFORE non-reserved reserved BEGIN non-reserved reserved reserved BETWEEN reserved (can be function) non-reserved reserved BIGINT non-reserved (cannot be function or type) BINARY reserved (can be function) reserved BIT non-reserved (cannot be function or type) reserved reserved BITVAR non-reserved BIT_LENGTH non-reserved reserved BLOB reserved BOOLEAN non-reserved (cannot be function or type) reserved BOTH reserved reserved reserved BREADTH reserved BY non-reserved reserved reserved C non-reserved non-reserved CACHE non-reserved CALL reserved CALLED non-reserved non-reserved CARDINALITY non-reserved CASCADE non-reserved reserved reserved CASCADED reserved reserved CASE reserved reserved reserved CAST reserved reserved reserved CATALOG reserved reserved CATALOG_NAME non-reserved non-reserved CHAIN non-reserved non-reserved CHAR non-reserved (cannot be function or type) reserved reserved CHARACTER non-reserved (cannot be function or type) reserved reserved CHARACTERISTICS non-reserved CHARACTER_LENGTH non-reserved reserved CHARACTER_SET_CATALOG non-reserved non-reserved CHARACTER_SET_NAME non-reserved non-reserved CHARACTER_SET_SCHEMA non-reserved non-reserved CHAR_LENGTH non-reserved reserved CHECK reserved reserved reserved CHECKED non-reserved CHECKPOINT non-reserved CLASS non-reserved reserved CLASS_ORIGIN non-reserved non-reserved CLOB reserved CLOSE non-reserved reserved reserved CLUSTER non-reserved COALESCE non-reserved (cannot be function or type) non-reserved reserved COBOL non-reserved non-reserved COLLATE reserved reserved reserved COLLATION reserved reserved COLLATION_CATALOG non-reserved non-reserved COLLATION_NAME non-reserved non-reserved COLLATION_SCHEMA non-reserved non-reserved COLUMN reserved reserved reserved COLUMN_NAME non-reserved non-reserved COMMAND_FUNCTION non-reserved non-reserved COMMAND_FUNCTION_CODE non-reserved COMMENT non-reserved COMMIT non-reserved reserved reserved COMMITTED non-reserved non-reserved non-reserved COMPLETION reserved CONDITION_NUMBER non-reserved non-reserved CONNECT reserved reserved CONNECTION reserved reserved CONNECTION_NAME non-reserved non-reserved CONSTRAINT reserved reserved reserved CONSTRAINTS non-reserved reserved reserved CONSTRAINT_CATALOG non-reserved non-reserved CONSTRAINT_NAME non-reserved non-reserved CONSTRAINT_SCHEMA non-reserved non-reserved CONSTRUCTOR reserved CONTAINS non-reserved CONTINUE reserved reserved CONVERSION non-reserved CONVERT non-reserved (cannot be function or type) non-reserved reserved COPY non-reserved CORRESPONDING reserved reserved COUNT non-reserved reserved CREATE reserved reserved reserved CREATEDB non-reserved CREATEUSER non-reserved CROSS reserved (can be function) reserved reserved CUBE reserved CURRENT reserved reserved CURRENT_DATE reserved reserved reserved CURRENT_PATH reserved CURRENT_ROLE reserved CURRENT_TIME reserved reserved reserved CURRENT_TIMESTAMP reserved reserved reserved CURRENT_USER reserved reserved reserved CURSOR non-reserved reserved reserved CURSOR_NAME non-reserved non-reserved CYCLE non-reserved reserved DATA reserved non-reserved DATABASE non-reserved DATE reserved reserved DATETIME_INTERVAL_CODE non-reserved non-reserved DATETIME_INTERVAL_PRECISION non-reserved non-reserved DAY non-reserved reserved reserved DEALLOCATE non-reserved reserved reserved DEC non-reserved (cannot be function or type) reserved reserved DECIMAL non-reserved (cannot be function or type) reserved reserved DECLARE non-reserved reserved reserved DEFAULT reserved reserved reserved DEFERRABLE reserved reserved reserved DEFERRED non-reserved reserved reserved DEFINED non-reserved DEFINER non-reserved non-reserved DELETE non-reserved reserved reserved DELIMITER non-reserved DELIMITERS non-reserved DEPTH reserved DEREF reserved DESC reserved reserved reserved DESCRIBE reserved reserved DESCRIPTOR reserved reserved DESTROY reserved DESTRUCTOR reserved DETERMINISTIC reserved DIAGNOSTICS reserved reserved DICTIONARY reserved DISCONNECT reserved reserved DISPATCH non-reserved DISTINCT reserved reserved reserved DO reserved DOMAIN non-reserved reserved reserved DOUBLE non-reserved reserved reserved DROP non-reserved reserved reserved DYNAMIC reserved DYNAMIC_FUNCTION non-reserved non-reserved DYNAMIC_FUNCTION_CODE non-reserved EACH non-reserved reserved ELSE reserved reserved reserved ENCODING non-reserved ENCRYPTED non-reserved END reserved reserved reserved END-EXEC reserved reserved EQUALS reserved ESCAPE non-reserved reserved reserved EVERY reserved EXCEPT reserved reserved reserved EXCEPTION reserved reserved EXCLUSIVE non-reserved EXEC reserved reserved EXECUTE non-reserved reserved reserved EXISTING non-reserved EXISTS non-reserved (cannot be function or type) non-reserved reserved EXPLAIN non-reserved EXTERNAL non-reserved reserved reserved EXTRACT non-reserved (cannot be function or type) non-reserved reserved FALSE reserved reserved reserved FETCH non-reserved reserved reserved FINAL non-reserved FIRST reserved reserved FLOAT non-reserved (cannot be function or type) reserved reserved FOR reserved reserved reserved FORCE non-reserved FOREIGN reserved reserved reserved FORTRAN non-reserved non-reserved FORWARD non-reserved FOUND reserved reserved FREE reserved FREEZE reserved (can be function) FROM reserved reserved reserved FULL reserved (can be function) reserved reserved FUNCTION non-reserved reserved G non-reserved GENERAL reserved GENERATED non-reserved GET non-reserved reserved reserved GLOBAL non-reserved reserved reserved GO reserved reserved GOTO reserved reserved GRANT reserved reserved reserved GRANTED non-reserved GROUP reserved reserved reserved GROUPING reserved HANDLER non-reserved HAVING reserved reserved reserved HIERARCHY non-reserved HOLD non-reserved HOST reserved HOUR non-reserved reserved reserved IDENTITY reserved reserved IGNORE reserved ILIKE reserved (can be function) IMMEDIATE non-reserved reserved reserved IMMUTABLE non-reserved IMPLEMENTATION non-reserved IMPLICIT non-reserved IN reserved (can be function) reserved reserved INCREMENT non-reserved INDEX non-reserved INDICATOR reserved reserved INFIX non-reserved INHERITS non-reserved INITIALIZE reserved INITIALLY reserved reserved reserved INNER reserved (can be function) reserved reserved INOUT non-reserved reserved INPUT non-reserved reserved reserved INSENSITIVE non-reserved non-reserved reserved INSERT non-reserved reserved reserved INSTANCE non-reserved INSTANTIABLE non-reserved INSTEAD non-reserved INT non-reserved (cannot be function or type) reserved reserved INTEGER non-reserved (cannot be function or type) reserved reserved INTERSECT reserved reserved reserved INTERVAL non-reserved (cannot be function or type) reserved reserved INTO reserved reserved reserved INVOKER non-reserved non-reserved IS reserved (can be function) reserved reserved ISNULL reserved (can be function) ISOLATION non-reserved reserved reserved ITERATE reserved JOIN reserved (can be function) reserved reserved K non-reserved KEY non-reserved reserved reserved KEY_MEMBER non-reserved KEY_TYPE non-reserved LANCOMPILER non-reserved LANGUAGE non-reserved reserved reserved LARGE reserved LAST reserved reserved LATERAL reserved LEADING reserved reserved reserved LEFT reserved (can be function) reserved reserved LENGTH non-reserved non-reserved LESS reserved LEVEL non-reserved reserved reserved LIKE reserved (can be function) reserved reserved LIMIT reserved reserved LISTEN non-reserved LOAD non-reserved LOCAL non-reserved reserved reserved LOCALTIME reserved reserved LOCALTIMESTAMP reserved reserved LOCATION non-reserved LOCATOR reserved LOCK non-reserved LOWER non-reserved reserved M non-reserved MAP reserved MATCH non-reserved reserved reserved MAX non-reserved reserved MAXVALUE non-reserved MESSAGE_LENGTH non-reserved non-reserved MESSAGE_OCTET_LENGTH non-reserved non-reserved MESSAGE_TEXT non-reserved non-reserved METHOD non-reserved MIN non-reserved reserved MINUTE non-reserved reserved reserved MINVALUE non-reserved MOD non-reserved MODE non-reserved MODIFIES reserved MODIFY reserved MODULE reserved reserved MONTH non-reserved reserved reserved MORE non-reserved non-reserved MOVE non-reserved MUMPS non-reserved non-reserved NAME non-reserved non-reserved NAMES non-reserved reserved reserved NATIONAL non-reserved reserved reserved NATURAL reserved (can be function) reserved reserved NCHAR non-reserved (cannot be function or type) reserved reserved NCLOB reserved NEW reserved reserved NEXT non-reserved reserved reserved NO non-reserved reserved reserved NOCREATEDB non-reserved NOCREATEUSER non-reserved NONE non-reserved (cannot be function or type) reserved NOT reserved reserved reserved NOTHING non-reserved NOTIFY non-reserved NOTNULL reserved (can be function) NULL reserved reserved reserved NULLABLE non-reserved non-reserved NULLIF non-reserved (cannot be function or type) non-reserved reserved NUMBER non-reserved non-reserved NUMERIC non-reserved (cannot be function or type) reserved reserved OBJECT reserved OCTET_LENGTH non-reserved reserved OF non-reserved reserved reserved OFF reserved reserved OFFSET reserved OIDS non-reserved OLD reserved reserved ON reserved reserved reserved ONLY reserved reserved reserved OPEN reserved reserved OPERATION reserved OPERATOR non-reserved OPTION non-reserved reserved reserved OPTIONS non-reserved OR reserved reserved reserved ORDER reserved reserved reserved ORDINALITY reserved OUT non-reserved reserved OUTER reserved (can be function) reserved reserved OUTPUT reserved reserved OVERLAPS reserved (can be function) non-reserved reserved OVERLAY non-reserved (cannot be function or type) non-reserved OVERRIDING non-reserved OWNER non-reserved PAD reserved reserved PARAMETER reserved PARAMETERS reserved PARAMETER_MODE non-reserved PARAMETER_NAME non-reserved PARAMETER_ORDINAL_POSITION non-reserved PARAMETER_SPECIFIC_CATALOG non-reserved PARAMETER_SPECIFIC_NAME non-reserved PARAMETER_SPECIFIC_SCHEMA non-reserved PARTIAL non-reserved reserved reserved PASCAL non-reserved non-reserved PASSWORD non-reserved PATH non-reserved reserved PENDANT non-reserved PLACING reserved PLI non-reserved non-reserved POSITION non-reserved (cannot be function or type) non-reserved reserved POSTFIX reserved PRECISION non-reserved reserved reserved PREFIX reserved PREORDER reserved PREPARE non-reserved reserved reserved PRESERVE reserved reserved PRIMARY reserved reserved reserved PRIOR non-reserved reserved reserved PRIVILEGES non-reserved reserved reserved PROCEDURAL non-reserved PROCEDURE non-reserved reserved reserved PUBLIC reserved reserved READ non-reserved reserved reserved READS reserved REAL non-reserved (cannot be function or type) reserved reserved RECHECK non-reserved RECURSIVE reserved REF reserved REFERENCES reserved reserved reserved REFERENCING reserved REINDEX non-reserved RELATIVE non-reserved reserved reserved RENAME non-reserved REPEATABLE non-reserved non-reserved REPLACE non-reserved RESET non-reserved RESTRICT non-reserved reserved reserved RESULT reserved RETURN reserved RETURNED_LENGTH non-reserved non-reserved RETURNED_OCTET_LENGTH non-reserved non-reserved RETURNED_SQLSTATE non-reserved non-reserved RETURNS non-reserved reserved REVOKE non-reserved reserved reserved RIGHT reserved (can be function) reserved reserved ROLE reserved ROLLBACK non-reserved reserved reserved ROLLUP reserved ROUTINE reserved ROUTINE_CATALOG non-reserved ROUTINE_NAME non-reserved ROUTINE_SCHEMA non-reserved ROW non-reserved (cannot be function or type) reserved ROWS reserved reserved ROW_COUNT non-reserved non-reserved RULE non-reserved SAVEPOINT reserved SCALE non-reserved non-reserved SCHEMA non-reserved reserved reserved SCHEMA_NAME non-reserved non-reserved SCOPE reserved SCROLL non-reserved reserved reserved SEARCH reserved SECOND non-reserved reserved reserved SECTION reserved reserved SECURITY non-reserved non-reserved SELECT reserved reserved reserved SELF non-reserved SENSITIVE non-reserved SEQUENCE non-reserved reserved SERIALIZABLE non-reserved non-reserved non-reserved SERVER_NAME non-reserved non-reserved SESSION non-reserved reserved reserved SESSION_USER reserved reserved reserved SET non-reserved reserved reserved SETOF non-reserved (cannot be function or type) SETS reserved SHARE non-reserved SHOW non-reserved SIMILAR reserved (can be function) non-reserved SIMPLE non-reserved non-reserved SIZE reserved reserved SMALLINT non-reserved (cannot be function or type) reserved reserved SOME reserved reserved reserved SOURCE non-reserved SPACE reserved reserved SPECIFIC reserved SPECIFICTYPE reserved SPECIFIC_NAME non-reserved SQL reserved reserved SQLCODE reserved SQLERROR reserved SQLEXCEPTION reserved SQLSTATE reserved reserved SQLWARNING reserved STABLE non-reserved START non-reserved reserved STATE reserved STATEMENT non-reserved reserved STATIC reserved STATISTICS non-reserved STDIN non-reserved STDOUT non-reserved STORAGE non-reserved STRICT non-reserved STRUCTURE reserved STYLE non-reserved SUBCLASS_ORIGIN non-reserved non-reserved SUBLIST non-reserved SUBSTRING non-reserved (cannot be function or type) non-reserved reserved SUM non-reserved reserved SYMMETRIC non-reserved SYSID non-reserved SYSTEM non-reserved SYSTEM_USER reserved reserved TABLE reserved reserved reserved TABLE_NAME non-reserved non-reserved TEMP non-reserved TEMPLATE non-reserved TEMPORARY non-reserved reserved reserved TERMINATE reserved THAN reserved THEN reserved reserved reserved TIME non-reserved (cannot be function or type) reserved reserved TIMESTAMP non-reserved (cannot be function or type) reserved reserved TIMEZONE_HOUR reserved reserved TIMEZONE_MINUTE reserved reserved TO reserved reserved reserved TOAST non-reserved TRAILING reserved reserved reserved TRANSACTION non-reserved reserved reserved TRANSACTIONS_COMMITTED non-reserved TRANSACTIONS_ROLLED_BACK non-reserved TRANSACTION_ACTIVE non-reserved TRANSFORM non-reserved TRANSFORMS non-reserved TRANSLATE non-reserved reserved TRANSLATION reserved reserved TREAT non-reserved (cannot be function or type) reserved TRIGGER non-reserved reserved TRIGGER_CATALOG non-reserved TRIGGER_NAME non-reserved TRIGGER_SCHEMA non-reserved TRIM non-reserved (cannot be function or type) non-reserved reserved TRUE reserved reserved reserved TRUNCATE non-reserved TRUSTED non-reserved TYPE non-reserved non-reserved non-reserved UNCOMMITTED non-reserved non-reserved UNDER reserved UNENCRYPTED non-reserved UNION reserved reserved reserved UNIQUE reserved reserved reserved UNKNOWN non-reserved reserved reserved UNLISTEN non-reserved UNNAMED non-reserved non-reserved UNNEST reserved UNTIL non-reserved UPDATE non-reserved reserved reserved UPPER non-reserved reserved USAGE non-reserved reserved reserved USER reserved reserved reserved USER_DEFINED_TYPE_CATALOG non-reserved USER_DEFINED_TYPE_NAME non-reserved USER_DEFINED_TYPE_SCHEMA non-reserved USING reserved reserved reserved VACUUM non-reserved VALID non-reserved VALIDATOR non-reserved VALUE reserved reserved VALUES non-reserved reserved reserved VARCHAR non-reserved (cannot be function or type) reserved reserved VARIABLE reserved VARYING non-reserved reserved reserved VERBOSE reserved (can be function) VERSION non-reserved VIEW non-reserved reserved reserved VOLATILE non-reserved WHEN reserved reserved reserved WHENEVER reserved reserved WHERE reserved reserved reserved WITH non-reserved reserved reserved WITHOUT non-reserved reserved WORK non-reserved reserved reserved WRITE non-reserved reserved reserved YEAR non-reserved reserved reserved ZONE non-reserved reserved reserved