Keywords and reserved words
Keywords are words that have significant meaning in SQL. Certain keywords, such as SELECT, DELETE, or BIGINT, are reserved and require special handling for use as identifiers such as table and column names. This may also apply to the names of built-in functions.
Allow non-reserved keywords as identifiers without quotes. Reserved words are allowed as identifiers if you refer to them as described in Section 9.2, “Schema Object Names”:
mysql> CREATE TABLE interval (begin INT, end INT); ERROR 1064 (42000): You have an error in your SQL syntax ... near 'interval (begin INT, end INT)'
BEGIN and END are keywords but not reserved, so their use as identifiers does not require quoting. INTERVAL is a reserved keyword and must be used as an identifier in quotes:
mysql> CREATE TABLE `interval` (begin INT, end INT); Query OK, 0 rows affected (0.01 sec)
Exception: words following a period in a qualified name must be identifiers, so no quoting is required even if reserved:
mysql> CREATE TABLE mydb. interval (begin INT, end INT); Query OK, 0 rows affected (0.01 sec)
The names of built-in functions are allowed as identifiers, but may need to be used with caution. For example, COUNT can be used as a column name. However, by default, no space is allowed between the function name and subsequent characters in a function call ( . This requirement enables the parser to distinguish whether the name is used in a function call or in a non-function context. More about function name recognition See Section 9.2.5, “Function Name Resolution and Resolution” for more details.
A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X | Y | Z A ACCESSIBLE (R) ACCOUNT; added in 5.7.6 (nonreserved) action ADD (R) AFTER AGAINST AGGREGATE ALGORITHM ALL (R) ALTER (R) ALWAYS; added in 5.7.6 (nonreserved) ANALYSE ANALYZE (R) AND (R) ANY AS (R) ASC (R) ASCII ASENSITIVE (R) AT AUTOEXTEND_SIZE AUTO_INCREMENT AVG AVG_ROW_LENGTH B BACKUP BEFORE (R) BEGIN BETWEEN (R) BIGINT (R) BINARY (R) BINLOG BIT BLOB (R) BLOCK BOOL BOOLEAN BOTH (R) BTREE BY (R) BYTE C CACHE CALL (R) CASCADE (R) CASCADED CASE (R) CATALOG_NAME CHAIN CHANGE (R) CHANGED CHANNEL; added in 5.7.6 (nonreserved) CHAR (R) CHARACTER (R) CHARSET CHECK (R) CHECKSUM CIPHER CLASS_ORIGIN CLIENT CLOSE COALESCE CODE COLLATE (R) COLLATION COLUMN (R) COLUMNS COLUMN_FORMAT COLUMN_NAME COMMENT COMMIT COMMITTED COMPACT COMPLETION COMPRESSED COMPRESSION; added in 5.7.8 (nonreserved) CONCURRENT CONDITION (R) CONNECTION CONSISTENT CONSTRAINT (R) CONSTRAINT_CATALOG CONSTRAINT_NAME CONSTRAINT_SCHEMA CONTAINS CONTEXT CONTINUE (R) CONVERT (R) CPU CREATE (R) CROSS (R) CUBE CURRENT CURRENT_DATE (R) CURRENT_TIME (R) CURRENT_TIMESTAMP (R) CURRENT_USER (R) CURSOR (R) CURSOR_NAME D. DATA DATABASE (R) DATABASES (R) DATAFILE DATE DATETIME DAY DAY_HOUR (R) DAY_MICROSECOND (R) DAY_MINUTE (R) DAY_SECOND (R) DEALLOCATE DEC (R) DECIMAL (R) DECLARE (R) DEFAULT (R) DEFAULT_AUTH DEFINER DELAYED (R) DELAY_KEY_WRITE DELETE (R) DESC (R) DESCRIBE (R) DES_KEY_FILE DETERMINISTIC (R) DIAGNOSTICS DIRECTORY DISABLE DISCARD DISK DISTINCT (R) DISTINCTROW (R) DIV (R) do DOUBLE (R) DROP (R) DUAL (R) DUMPFILE DUPLICATE DYNAMIC E. EACH (R) ELSE (R) ELSEIF (R) ENABLE ENCLOSED (R) ENCRYPTION; added in 5.7.11 (nonreserved) END ENDS ENGINE ENGINES ENUM ERROR ERRORS ESCAPE ESCAPED (R) EVENT EVENTS EVERY EXCHANGE EXECUTE EXISTS (R) EXIT (R) EXPANSION EXPIRE EXPLAIN (R) EXPORT EXTENDED EXTENT_SIZE f FALSE (R) FAST FAULTS FETCH (R) FIELDS FILE FILE_BLOCK_SIZE; added in 5.7.6 (nonreserved) FILTER; added in 5.7.3 (nonreserved) FIRST FIXED FLOAT (R) FLOAT4 (R) FLOAT8 (R) FLUSH FOLLOWS; added in 5.7.2 (nonreserved) FOR (R) FORCE (R) FOREIGN (R) FORMAT FOUND FROM (R) FULL FULLTEXT (R) FUNCTION G GENERAL GENERATED (R); added in 5.7.6 (reserved) GEOMETRY GEOMETRY COLLECTION GET (R) GET_FORMAT GLOBAL GRANT (R) GRANTS GROUP (R) GROUP_REPLICATION; added in 5.7.6 (nonreserved) h HANDLER HASH HAVING (R) HELP HIGH_PRIORITY (R) HOST HOSTS HOUR HOUR_MICROSECOND (R) HOUR_MINUTE (R) HOUR_SECOND (R) I IDENTIFIED IF (R) IGNORE (R) IGNORE_SERVER_IDS IMPORT IN (R) INDEX (R) INDEXES INFILE (R) INITIAL_SIZE INNER (R) INOUT (R) INSENSITIVE (R) INSERT (R) INSERT_METHOD INSTALL INSTANCE; added in 5.7.11 (nonreserved) INT (R) INT1 (R) INT2 (R) INT3 (R) INT4 (R) INT8 (R) INTEGER (R) INTERVAL (R) INTO (R) INVOKER IO IO_AFTER_GTIDS (R) IO_BEFORE_GTIDS (R) IO_THREAD IPC IS (R) ISOLATION ISSUER ITERATE (R) J JOIN (R) JSON; added in 5.7.8 (nonreserved) K KEY (R) KEYS (R) KEY_BLOCK_SIZE KILL (R) L LANGUAGE LAST LEADING (R) LEAVE (R) LEAVES LEFT (R) less LEVEL LIKE (R) LIMIT (R) LINEAR (R) LINES (R) LINESTRING LIST LOAD (R) LOCAL LOCALTIME (R) LOCAL TIMESTAMP (R) LOCK (R) LOCKS LOGFILE LOGS LONG (R) LONGBLOB (R) LONGTEXT (R) LOOP (R) LOW_PRIORITY (R) m MASTER MASTER_AUTO_POSITION MASTER_BIND (R) MASTER_CONNECT_RETRY MASTER_DELAY MASTER_HEARTBEAT_PERIOD MASTER_HOST MASTER_LOG_FILE MASTER_LOG_POS MASTER_PASSWORD MASTER_PORT MASTER_RETRY_COUNT MASTER_SERVER_ID MASTER_SSL MASTER_SSL_CA MASTER_SSL_CAPATH MASTER_SSL_CERT MASTER_SSL_CIPHER MASTER_SSL_CRL MASTER_SSL_CRLPATH MASTER_SSL_KEY MASTER_SSL_VERIFY_SERVER_CERT (R) MASTER_TLS_VERSION; added in 5.7.10 (nonreserved) MASTER_USER MATCH (R) MAXVALUE (R) MAX_CONNECTIONS_PER_HOUR MAX_QUERIES_PER_HOUR MAX_ROWS MAX_SIZE MAX_STATEMENT_TIME; added in 5.7.4 (nonreserved); removed in 5.7.8 MAX_UPDATES_PER_HOUR MAX_USER_CONNECTIONS MEDIUM MEDIUMBLOB (R) MEDIUMINT (R) MEDIUM TEXT (R) MEMORY MERGE MESSAGE_TEXT MICROSECOND MIDDLEINT (R) MIGRATE MINUTE MINUTE_MICROSECOND (R) MINUTE_SECOND (R) MIN_ROWS MOD (R) MODE MODIFIES (R) MODIFY MONTH MULTILINESTRING MULTIPOINT MULTIPOLYGON MUTEX MYSQL_ERRNO N name NAMES NATIONAL NATURAL (R) NCHAR NDB NDB CLUSTER NEVER; added in 5.7.4 (nonreserved) NEW NEXT NO NODE GROUP NONBLOCKING; removed in 5.7.6 NONE NOT (R) NO_WAIT NO_WRITE_TO_BINLOG (R) NULL (R) NUMBER NUMERIC (R) NVARCHAR o OFFSET OLD_PASSWORD; removed in 5.7.5 ON (R) ONE ONLY OPEN OPTIMIZE (R) OPTIMIZER_COSTS (R); added in 5.7.5 (reserved) OPTION (R) OPTIONALLY (R) OPTIONS OR (R) ORDER (R) OUT (R) OUTER (R) OUTFILE (R) OWNER P PACK_KEYS PAGE PARSER PARSE_GCOL_EXPR; added in 5.7.6 (reserved); became nonreserved in 5.7.8 PARTIAL PARTITION (R) PARTITIONING PARTITIONS PASSWORD PHASE PLUGIN PLUGINS PLUGIN_DIR POINT POLYGON port PRECEDES; added in 5.7.2 (nonreserved) PRECISION (R) PREPARE PRESERVE PREV PRIMARY (R) PRIVILEGES PROCEDURE (R) PROCESSLIST PROFILE PROFILES PROXY PURGE (R) Q QUARTER QUERY QUICK R RANGE (R) READ (R) READS (R) READ_ONLY READ_WRITE (R) REAL (R) REBUILD RECOVER REDOFILE REDO_BUFFER_SIZE REDUNDANT REFERENCES (R) REGEXP (R) RELAY RELAYLOG RELAY_LOG_FILE RELAY_LOG_POS RELAY_THREAD RELEASE (R) RELOAD REMOVE RENAME (R) REORGANIZE REPAIR REPEAT (R) REPEATABLE REPLACE (R) REPLICATE_DO_DB; added in 5.7.3 (nonreserved) REPLICATE_DO_TABLE; added in 5.7.3 (nonreserved) REPLICATE_IGNORE_DB; added in 5.7.3 (nonreserved) REPLICATE_IGNORE_TABLE; added in 5.7.3 (nonreserved) REPLICATE_REWRITE_DB; added in 5.7.3 (nonreserved) REPLICATE_WILD_DO_TABLE; added in 5.7.3 (nonreserved) REPLICATE_WILD_IGNORE_TABLE; added in 5.7.3 (nonreserved) REPLICATION REQUIRE (R) RESET RESIGNAL (R) RESTORE RESTRICT (R) RESUME RETURN (R) RETURNED_SQLSTATE RETURNS REVERSE REVOKE (R) RIGHT (R) RLIKE (R) ROLL BACK ROLLUP ROTATE; added in 5.7.11 (nonreserved) ROUTINE ROW ROWS ROW_COUNT ROW_FORMAT RTREE S SAVE POINT SCHEDULE SCHEMA (R) SCHEMAS (R) SCHEMA_NAME SECOND SECOND_MICROSECOND (R) SECURITY SELECT (R) SENSITIVE (R) SEPARATOR (R) SERIAL SERIALIZABLE SERVER Session SET (R) SHARE SHOW (R) SHUTDOWN SIGNAL (R) SIGNED SIMPLE SLAVE SLOW SMALLINT (R) SNAPSHOT SOCKET SOME SONAME SOUNDS SOURCE SPATIAL (R) SPECIFIC (R) SQL (R) SQL EXCEPTION (R) SQLSTATE (R) SQLWARNING (R) SQL_AFTER_GTIDS SQL_AFTER_MTS_GAPS SQL_BEFORE_GTIDS SQL_BIG_RESULT (R) SQL_BUFFER_RESULT SQL_CACHE SQL_CALC_FOUND_ROWS (R) SQL_NO_CACHE SQL_SMALL_RESULT (R) SQL_THREAD SQL_TSI_DAY SQL_TSI_HOUR SQL_TSI_MINUTE SQL_TSI_MONTH SQL_TSI_QUARTER SQL_TSI_SECOND SQL_TSI_WEEK SQL_TSI_YEAR SSL (R) STACKED START STARTING (R) STARTS STATS_AUTO_RECALC STATS_PERSISTENT STATS_SAMPLE_PAGES STATUS STOP STORAGE STORED (R); added in 5.7.6 (reserved) STRAIGHT_JOIN (R) STRING SUBCLASS_ORIGIN SUBJECT SUBPARTITION SUBPARTITIONS SUPER SUSPEND SWAPS SWITCHES T TABLE (R) TABLES TABLE SPACE TABLE_CHECKSUM TABLE_NAME TEMPORARY TEMPTABLE TERMINATED (R) TEXT THAN THEN (R) time TIMESTAMP TIMESTAMP ADD TIMESTAMP DIFF TINYBLOB (R) TINYINT (R) TINYTEXT (R) TO (R) TRAILING (R) TRANSACTION TRIGGER (R) TRIGGERS TRUE (R) TRUNCATE TYPE TYPES u UNCOMMITTED UNDEFINED UNDO (R) UNDOFILE UNDO_BUFFER_SIZE UNICODE UNINSTALL UNION (R) UNIQUE (R) UNKNOWN UNLOCK (R) UNSIGNED (R) UNTIL UPDATE (R) UPGRADE USAGE (R) USE (R) USER USER_RESOURCES USE_FRM USING (R) UTC_DATE (R) UTC_TIME (R) UTC_TIMESTAMP (R) V VALIDATION; added in 5.7.5 (nonreserved) VALUE VALUES (R) VARBINARY (R) VARCHAR (R) VARCHARACTER (R) VARIABLES VARYING (R) VIEW VIRTUAL (R); added in 5.7.6 (reserved) W wait WARNINGS WEEK WEIGHT_STRING WHEN (R) WHERE (R) WHILE (R) WITH (R) WITHOUT; added in 5.7.5 (nonreserved) WORK WRAPPER WRITE (R) x X509 XA XID; added in 5.7.5 (nonreserved) XML XOR (R) Y YEAR YEAR_MONTH (R) Z ZEROFILL (R) MySQL 5.7 New Keywords and Reserved Words The following list shows the keywords and reserved words that are added in MySQL 5.7, compared to MySQL 5.6. Reserved keywords are marked with (R). A|C|E|F|G|I|J|M|N|O|P|R|S|V|W|X A ACCOUNT ALWAYS C CHANNEL COMPRESSION E. ENCRYPTION f FILE_BLOCK_SIZE FILTER FOLLOWS G GENERATED (R) GROUP_REPLICATION I INSTANCE J JSON m MASTER_TLS_VERSION N NEVER o OPTIMIZER_COSTS (R) P PARSE_GCOL_EXPR PRECEDES R REPLICATE_DO_DB REPLICATE_DO_TABLE REPLICATE_IGNORE_DB REPLICATE_IGNORE_TABLE REPLICATE_REWRITE_DB REPLICATE_WILD_DO_TABLE REPLICATE_WILD_IGNORE_TABLE ROTATE S STACKED STORED (R) V VALIDATION VIRTUAL (R) W WITHOUT x XID