Mysql 關(guān)鍵字 保留字

2017年7月


https://dev.mysql.com/doc/refman/5.7/en/keywords.html#

9.3關(guān)鍵字和保留字

關(guān)鍵字是在SQL中具有重要意義的詞。某些關(guān)鍵字,如SELECT, DELETE或 BIGINT,被保留,需要用作標(biāo)識(shí)符,例如表和列名特殊待遇。對(duì)于內(nèi)置函數(shù)的名稱也是如此。

非保留關(guān)鍵字作為標(biāo)識(shí)符而不引用。如第9.2節(jié)“架構(gòu)對(duì)象名稱”中所述,如果引用了保留字,則可以將其保留為標(biāo)識(shí)符:

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并且END是關(guān)鍵字但不保留,因此它們用作標(biāo)識(shí)符不需要引用。INTERVAL是一個(gè)保留關(guān)鍵字,必須引用為標(biāo)識(shí)符:

mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)

例外:在限定名稱中的句點(diǎn)后面的單詞必須是一個(gè)標(biāo)識(shí)符,所以即使被保留,也不需要引用它:

mysql> CREATE TABLE mydb.interval (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)

允許內(nèi)置函數(shù)的名稱作為標(biāo)識(shí)符,但可能需要謹(jǐn)慎使用。例如, COUNT作為列名可以接受。但是,默認(rèn)情況下,在函數(shù)名和下一個(gè)( 字符之間的函數(shù)調(diào)用中不允許有空格。該要求使分析器能夠區(qū)分名稱是否在函數(shù)調(diào)用中使用,也可以在非功能上下文中使用。有關(guān)識(shí)別功能名稱的更多詳細(xì)信息,請(qǐng)參見 第9.2.4節(jié)“功能名稱解析和分辨率”。

下表顯示了MySQL 5.7中的關(guān)鍵字和保留字,以及從版本到版本的單個(gè)字的更改。保留關(guān)鍵字標(biāo)有(R)。另外,_FILENAME是保留的。

在某些時(shí)候,您可能會(huì)升級(jí)到更高版本,所以看一下未來的保留字也是一個(gè)好主意。您可以在涵蓋更高版本的MySQL的手冊(cè)中找到這些。標(biāo)準(zhǔn)SQL作為列或表名稱禁止表中的大多數(shù)保留字(例如, GROUP)。有一些是保留的,因?yàn)镸ySQL需要它們并使用yacc解析器。

表9.2 MySQL中的關(guān)鍵字和保留字5.7

ACCESSIBLE (R) ACCOUNT[a] ACTION
ADD (R) AFTER AGAINST
AGGREGATE ALGORITHM ALL (R)
ALTER (R) ALWAYS[b] ANALYSE
ANALYZE (R) AND (R) ANY
AS (R) ASC (R) ASCII
ASENSITIVE (R) AT AUTOEXTEND_SIZE
AUTO_INCREMENT AVG AVG_ROW_LENGTH
BACKUP BEFORE (R) BEGIN
BETWEEN (R) BIGINT (R) BINARY (R)
BINLOG BIT BLOB (R)
BLOCK BOOL BOOLEAN
BOTH (R) BTREE BY (R)
BYTE CACHE CALL (R)
CASCADE (R) CASCADED CASE (R)
CATALOG_NAME CHAIN CHANGE (R)
CHANGED CHANNEL[c] 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[d] 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 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 EACH (R)
ELSE (R) ELSEIF (R) ENABLE
ENCLOSED (R) ENCRYPTION[e] 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
FALSE (R) FAST FAULTS
FETCH (R) FIELDS FILE
FILE_BLOCK_SIZE[f] FILTER[g] FIRST
FIXED FLOAT (R) FLOAT4 (R)
FLOAT8 (R) FLUSH FOLLOWS[h]
FOR (R) FORCE (R) FOREIGN (R)
FORMAT FOUND FROM (R)
FULL FULLTEXT (R) FUNCTION
GENERAL GENERATED[i] (R) GEOMETRY
GEOMETRYCOLLECTION GET (R) GET_FORMAT
GLOBAL GRANT (R) GRANTS
GROUP (R) GROUP_REPLICATION[j] HANDLER
HASH HAVING (R) HELP
HIGH_PRIORITY (R) HOST HOSTS
HOUR HOUR_MICROSECOND (R) HOUR_MINUTE (R)
HOUR_SECOND (R) 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[k]
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) JOIN (R) JSON[l]
KEY (R) KEYS (R) KEY_BLOCK_SIZE
KILL (R) 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)
LOCALTIMESTAMP (R) LOCK (R) LOCKS
LOGFILE LOGS LONG (R)
LONGBLOB (R) LONGTEXT (R) LOOP (R)
LOW_PRIORITY (R) 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[m]
MASTER_USER MATCH (R) MAXVALUE (R)
MAX_CONNECTIONS_PER_HOUR MAX_QUERIES_PER_HOUR MAX_ROWS
MAX_SIZE MAX_STATEMENT_TIME[n] MAX_UPDATES_PER_HOUR
MAX_USER_CONNECTIONS MEDIUM MEDIUMBLOB (R)
MEDIUMINT (R) MEDIUMTEXT (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 NAME NAMES
NATIONAL NATURAL (R) NCHAR
NDB NDBCLUSTER NEVER[o]
NEW NEXT NO
NODEGROUP NONBLOCKING[p] NONE
NOT (R) NO_WAIT NO_WRITE_TO_BINLOG (R)
NULL (R) NUMBER NUMERIC (R)
NVARCHAR OFFSET OLD_PASSWORD[q]
ON (R) ONE ONLY
OPEN OPTIMIZE (R) OPTIMIZER_COSTS[r] (R)
OPTION (R) OPTIONALLY (R) OPTIONS
OR (R) ORDER (R) OUT (R)
OUTER (R) OUTFILE (R) OWNER
PACK_KEYS PAGE PARSER
PARSE_GCOL_EXPR[s] PARTIAL PARTITION (R)
PARTITIONING PARTITIONS PASSWORD
PHASE PLUGIN PLUGINS
PLUGIN_DIR POINT POLYGON
PORT PRECEDES[t] PRECISION (R)
PREPARE PRESERVE PREV
PRIMARY (R) PRIVILEGES PROCEDURE (R)
PROCESSLIST PROFILE PROFILES
PROXY PURGE (R) QUARTER
QUERY QUICK 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[u]
REPLICATE_DO_TABLE[v] REPLICATE_IGNORE_DB[w] REPLICATE_IGNORE_TABLE[x]
REPLICATE_REWRITE_DB[y] REPLICATE_WILD_DO_TABLE[z] REPLICATE_WILD_IGNORE_TABLE[aa]
REPLICATION REQUIRE (R) RESET
RESIGNAL (R) RESTORE RESTRICT (R)
RESUME RETURN (R) RETURNED_SQLSTATE
RETURNS REVERSE REVOKE (R)
RIGHT (R) RLIKE (R) ROLLBACK
ROLLUP ROTATE[ab] ROUTINE
ROW ROWS ROW_COUNT
ROW_FORMAT RTREE SAVEPOINT
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)
SQLEXCEPTION (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[ac] (R)
STRAIGHT_JOIN (R) STRING SUBCLASS_ORIGIN
SUBJECT SUBPARTITION SUBPARTITIONS
SUPER SUSPEND SWAPS
SWITCHES TABLE (R) TABLES
TABLESPACE TABLE_CHECKSUM TABLE_NAME
TEMPORARY TEMPTABLE TERMINATED (R)
TEXT THAN THEN (R)
TIME TIMESTAMP TIMESTAMPADD
TIMESTAMPDIFF TINYBLOB (R) TINYINT (R)
TINYTEXT (R) TO (R) TRAILING (R)
TRANSACTION TRIGGER (R) TRIGGERS
TRUE (R) TRUNCATE TYPE
TYPES 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) VALIDATION[ad] VALUE
VALUES (R) VARBINARY (R) VARCHAR (R)
VARCHARACTER (R) VARIABLES VARYING (R)
VIEW VIRTUAL[ae] (R) WAIT
WARNINGS WEEK WEIGHT_STRING
WHEN (R) WHERE (R) WHILE (R)
WITH (R) WITHOUT[af] WORK
WRAPPER WRITE (R) X509
XA XID[ag] XML
XOR (R) YEAR YEAR_MONTH (R)
ZEROFILL (R)

[a]ACCOUNT:添加在5.7.6(非保留)

[b]ALWAYS:加入5.7.6(非保留)

[c]CHANNEL:加入5.7.6(非保留)

[d]COMPRESSION:加入5.7.8(非保留)

[e]ENCRYPTION:加入5.7.11(非保留)

[f]FILE_BLOCK_SIZE:加入5.7.6(非保留)

[g]FILTER:加入5.7.3(非保留)

[h]FOLLOWS:加入5.7.2(非保留)

[i]GENERATED:加入5.7.6(保留)

[j]GROUP_REPLICATION:加入5.7.6(非保留)

[k]INSTANCE:加入5.7.11(非保留)

[l]JSON:加入5.7.8(非保留)

[m]MASTER_TLS_VERSION:加入5.7.10(非保留)

[n]MAX_STATEMENT_TIME:加入5.7.4(非保留); 在5.7.8中刪除

[o]NEVER:加入5.7.4(非保留)

[p]NONBLOCKING:在5.7.6中刪除

[q]OLD_PASSWORD:在5.7.5中刪除

[r]OPTIMIZER_COSTS:加入5.7.5(保留)

[s]PARSE_GCOL_EXPR:加入5.7.6(保留); 在5.7.8中沒有保留

[t]PRECEDES:添加在5.7.2(非保留)

[u]REPLICATE_DO_DB:添加在5.7.3(非保留)

[v]REPLICATE_DO_TABLE:添加在5.7.3(非保留)

[w]REPLICATE_IGNORE_DB:加入5.7.3(非保留)

[x]REPLICATE_IGNORE_TABLE:添加在5.7.3(非保留)

[y]REPLICATE_REWRITE_DB:添加在5.7.3(非保留)

[z]REPLICATE_WILD_DO_TABLE:添加在5.7.3(非保留)

[aa]REPLICATE_WILD_IGNORE_TABLE:添加在5.7.3(非保留)

[ab]ROTATE:添加在5.7.11(非保留)

[ac]STORED:添加在5.7.6(保留)

[ad]VALIDATION:加入5.7.5(非保留)

[ae]VIRTUAL:加入5.7.6(保留)

[af]WITHOUT:加入5.7.5(非保留)

[ag]XID:加入5.7.5(非保留)

下表顯示了MySQL 5.7中添加的關(guān)鍵字和保留字。保留關(guān)鍵字標(biāo)有(R)。

表9.3 MySQL中添加的關(guān)鍵字和保留字5.7與MySQL 5.6相比

ACCOUNT ALWAYS CHANNEL
COMPRESSION ENCRYPTION FILE_BLOCK_SIZE
FILTER FOLLOWS GENERATED (R)
GROUP_REPLICATION INSTANCE JSON
MASTER_TLS_VERSION NEVER OPTIMIZER_COSTS (R)
PARSE_GCOL_EXPR PRECEDES REPLICATE_DO_DB
REPLICATE_DO_TABLE REPLICATE_IGNORE_DB REPLICATE_IGNORE_TABLE
REPLICATE_REWRITE_DB REPLICATE_WILD_DO_TABLE REPLICATE_WILD_IGNORE_TABLE
ROTATE STACKED STORED (R)
VALIDATION VIRTUAL (R) WITHOUT
XID

下表顯示了MySQL 5.7中刪除的關(guān)鍵字和保留字。保留關(guān)鍵字標(biāo)有(R)。

表9.4 MySQL 5.7中刪除的關(guān)鍵字和保留字與MySQL 5.6相比

| |
---|---|---
OLD_PASSWORD| |

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容