关键字是 SQL 中有意义的单词。某些关键字,如 SELECT、DELETE 或 BIGINT,是保留字,需要特殊处理才能用作标识符,如表名和列名。对于内置函数的名称也可能是这种情况。
非保留字关键字允许作为标识符而不加引号。如果按照 第 11.2 节“架构对象名称” 中的说明加上引号,则保留字允许作为标识符
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 是关键字,但不是保留字,因此用作标识符时不需要加引号。 INTERVAL 是保留字,用作标识符时必须加引号
mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)例外:限定名称中句点后面的单词必须是标识符,因此即使是保留字也不需要加引号
mysql> CREATE TABLE mydb.interval (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)内置函数的名称允许作为标识符,但可能需要小心使用。例如,COUNT 可用作列名。但是,默认情况下,函数调用中函数名称和后面的 ( 字符之间不允许有空格。此要求使解析器能够区分名称是在函数调用中使用还是在非函数上下文中使用。有关识别函数名称的更多详细信息,请参见 第 11.2.5 节“函数名称解析和解决”。
INFORMATION_SCHEMA.KEYWORDS 表列出了 MySQL 认为是关键字的单词,并指出了它们是否是保留字。请参见 第 28.3.17 节“INFORMATION_SCHEMA KEYWORDS 表”。
以下列表显示了 MySQL 8.4 中的关键字和保留字,以及各个单词从版本到版本的变化。保留关键字用 (R) 标记。此外,_FILENAME 已保留。
在某个时候,您可能会升级到更高版本,因此最好也了解一下未来的保留字。您可以在涵盖 MySQL 更高版本的文档中找到这些保留字。列表中的大多数保留字都被标准 SQL 禁止用作列或表名(例如,GROUP)。少数几个被保留,因为 MySQL 需要它们并使用 yacc 解析器。
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
ACCESSIBLE(R)ACCOUNTACTIONACTIVEADD(R)ADMINAFTERAGAINSTAGGREGATEALGORITHMALL(R)ALTER(R)ALWAYSANALYZE(R)AND(R)ANYARRAYAS(R)ASC(R)ASCIIASENSITIVE(R)ATATTRIBUTEAUTHENTICATIONAUTOAUTOEXTEND_SIZEAUTO_INCREMENTAVGAVG_ROW_LENGTH
BACKUPBEFORE(R)BEGINBERNOULLIBETWEEN(R)BIGINT(R)BINARY(R)BINLOGBITBLOB(R)BLOCKBOOLBOOLEANBOTH(R)BTREEBUCKETSBULKBY(R)BYTE
CACHECALL(R)CASCADE(R)CASCADEDCASE(R)CATALOG_NAMECHAINCHALLENGE_RESPONSECHANGE(R)CHANGEDCHANNELCHAR(R)CHARACTER(R)CHARSETCHECK(R)CHECKSUMCIPHERCLASS_ORIGINCLIENTCLONECLOSECOALESCECODECOLLATE(R)COLLATIONCOLUMN(R)COLUMNSCOLUMN_FORMATCOLUMN_NAMECOMMENTCOMMITCOMMITTEDCOMPACTCOMPLETIONCOMPONENTCOMPRESSEDCOMPRESSIONCONCURRENTCONDITION(R)CONNECTIONCONSISTENTCONSTRAINT(R)CONSTRAINT_CATALOGCONSTRAINT_NAMECONSTRAINT_SCHEMACONTAINSCONTEXTCONTINUE(R)CONVERT(R)CPUCREATE(R)CROSS(R)CUBE(R)CUME_DIST(R)CURRENTCURRENT_DATE(R)CURRENT_TIME(R)CURRENT_TIMESTAMP(R)CURRENT_USER(R)CURSOR(R)CURSOR_NAME
DATADATABASE(R)DATABASES(R)DATAFILEDATEDATETIMEDAYDAY_HOUR(R)DAY_MICROSECOND(R)DAY_MINUTE(R)DAY_SECOND(R)DEALLOCATEDEC(R)DECIMAL(R)DECLARE(R)DEFAULT(R)DEFAULT_AUTHDEFINERDEFINITIONDELAYED(R)DELAY_KEY_WRITEDELETE(R)DENSE_RANK(R)DESC(R)DESCRIBE(R)描述DETERMINISTIC(R)诊断目录禁用放弃磁盘DISTINCT(R)DISTINCTROW(R)DIV(R)DODOUBLE(R)DROP(R)DUAL(R)DUMPFILE重复动态
EACH(R)ELSE(R)ELSEIF(R)EMPTY(R)启用ENCLOSED(R)加密结束结束强制引擎引擎ENGINE_ATTRIBUTEENUM错误错误转义ESCAPED(R)事件事件每次EXCEPT(R)交换排除执行EXISTS(R)EXIT(R)扩展过期EXPLAIN(R)导出扩展EXTENT_SIZE
因子FAILED_LOGIN_ATTEMPTSFALSE(R)快速故障FETCH(R)字段文件FILE_BLOCK_SIZE过滤器完成首先FIRST_VALUE(R)固定FLOAT(R)FLOAT4(R)FLOAT8(R)刷新后续跟随FOR(R)FORCE(R)FOREIGN(R)格式已找到FROM(R)全部FULLTEXT(R)FUNCTION(R)
常规生成GENERATED(R)GEOMCOLLECTIONGEOMETRYGEOMETRYCOLLECTIONGET(R)GET_FORMATGET_SOURCE_PUBLIC_KEY全局GRANT(R)授予GROUP(R)GROUPING(R)GROUPS(R)GROUP_REPLICATIONGTIDGTID_ONLY
HANDLERHASHHAVING(R)HELPHIGH_PRIORITY(R)HISTOGRAMHISTORYHOSTHOSTSHOURHOUR_MICROSECOND(R)HOUR_MINUTE(R)HOUR_SECOND(R)
IDENTIFIEDIF(R)IGNORE(R)IGNORE_SERVER_IDSIMPORTIN(R)INACTIVEINDEX(R)INDEXESINFILE(R)INITIALINITIAL_SIZEINITIATEINNER(R)INOUT(R)INSENSITIVE(R)INSERT(R)INSERT_METHODINSTALLINSTANCEINT(R)INT1(R)INT2(R)INT3(R)INT4(R)INT8(R)INTEGER(R)INTERSECT(R)INTERVAL(R)INTO(R)INVISIBLEINVOKERIOIO_AFTER_GTIDS(R)IO_BEFORE_GTIDS(R)IO_THREADIPCIS(R)ISOLATIONISSUERITERATE(R)
JOIN(R)JSONJSON_TABLE(R)JSON_VALUE
KEY(R)KEYRINGKEYS(R)KEY_BLOCK_SIZEKILL(R)
LAG(R)LANGUAGELASTLAST_VALUE(R)LATERAL(R)LEAD(R)LEADING(R)LEAVE(R)LEAVESLEFT(R)LESSLEVELLIKE(R)LIMIT(R)LINEAR(R)LINES(R)LINESTRINGLISTLOAD(R)LOCALLOCALTIME(R)LOCALTIMESTAMP(R)LOCK(R)LOCKEDLOCKSLOGLOGFILELOGSLONG(R)LONGBLOB(R)LONGTEXT(R)LOOP(R)LOW_PRIORITY(R)
MANUAL(R)MASTERMATCH(R)MAXVALUE(R)MAX_CONNECTIONS_PER_HOURMAX_QUERIES_PER_HOURMAX_ROWSMAX_SIZEMAX_UPDATES_PER_HOURMAX_USER_CONNECTIONSMEDIUMMEDIUMBLOB(R)MEDIUMINT(R)MEDIUMTEXT(R)MEMBERMEMORYMERGEMESSAGE_TEXTMICROSECONDMIDDLEINT(R)MIGRATEMINUTEMINUTE_MICROSECOND(R)MINUTE_SECOND(R)MIN_ROWSMOD(R)MODEMODIFIES(R)MODIFYMONTHMULTILINESTRINGMULTIPOINTMULTIPOLYGONMUTEXMYSQL_ERRNO
NAMENAMESNATIONALNATURAL(R)NCHARNDBNDBCLUSTERNESTEDNETWORK_NAMESPACENEVERNEWNEXTNONODEGROUPNONENOT(R)NOWAITNO_WAITNO_WRITE_TO_BINLOG(R)NTH_VALUE(R)NTILE(R)NULL(R)NULLSNUMBERNUMERIC(R)NVARCHAR
OF(R)OFFOFFSETOJOLDON(R)ONEONLYOPENOPTIMIZE(R)OPTIMIZER_COSTS(R)OPTION(R)OPTIONALOPTIONALLY(R)OPTIONSOR(R)ORDER(R)ORDINALITYORGANIZATION其他OUT(R)OUTER(R)OUTFILE(R)OVER(R)所有者
PACK_KEYSPAGEPARALLEL(R)PARSERPARSE_TREEPARTIALPARTITION(R)PARTITIONINGPARTITIONSPASSWORDPASSWORD_LOCK_TIMEPATHPERCENT_RANK(R)PERSISTPERSIST_ONLYPHASEPLUGINPLUGINSPLUGIN_DIRPOINTPOLYGONPORTPRECEDESPRECEDINGPRECISION(R)PREPAREPRESERVEPREVPRIMARY(R)PRIVILEGESPRIVILEGE_CHECKS_USERPROCEDURE(R)PROCESSPROCESSLISTPROFILEPROFILESPROXYPURGE(R)
QUALIFY(R)QUARTERQUERYQUICK
RANDOMRANGE(R)RANK(R)READ(R)READS(R)READ_ONLYREAD_WRITE(R)REAL(R)REBUILDRECOVERRECURSIVE(R)REDO_BUFFER_SIZEREDUNDANTREFERENCEREFERENCES(R)REGEXP(R)REGISTRATIONRELAYRELAYLOGRELAY_LOG_FILERELAY_LOG_POSRELAY_THREADRELEASE(R)RELOADREMOVERENAME(R)REORGANIZEREPAIRREPEAT(R)REPEATABLEREPLACE(R)REPLICAREPLICASREPLICATE_DO_DBREPLICATE_DO_TABLEREPLICATE_IGNORE_DBREPLICATE_IGNORE_TABLEREPLICATE_REWRITE_DBREPLICATE_WILD_DO_TABLEREPLICATE_WILD_IGNORE_TABLEREPLICATIONREQUIRE(R)REQUIRE_ROW_FORMATRESETRESIGNAL(R)RESOURCERESPECTRESTARTRESTORERESTRICT(R)RESUMERETAINRETURN(R)RETURNED_SQLSTATERETURNINGRETURNSREUSEREVERSEREVOKE(R)RIGHT(R)RLIKE(R)ROLEROLLBACKROLLUPROTATEROUTINEROW(R)ROWS(R)ROW_COUNTROW_FORMATROW_NUMBER(R)RTREE
S3SAVEPOINTSCHEDULESCHEMA(R)SCHEMAS(R)SCHEMA_NAMESECONDSECONDARYSECONDARY_ENGINESECONDARY_ENGINE_ATTRIBUTESECONDARY_LOADSECONDARY_UNLOADSECOND_MICROSECOND(R)SECURITYSELECT(R)SENSITIVE(R)SEPARATOR(R)SERIALSERIALIZABLESERVERSESSIONSET(R)SHARESHOW(R)SHUTDOWNSIGNAL(R)SIGNEDSIMPLESKIPSLAVESLOWSMALLINT(R)SNAPSHOTSOCKETSOMESONAMESOUNDSSOURCESOURCE_AUTO_POSITIONSOURCE_BINDSOURCE_COMPRESSION_ALGORITHMSSOURCE_CONNECT_RETRYSOURCE_DELAYSOURCE_HEARTBEAT_PERIODSOURCE_HOSTSOURCE_LOG_FILESOURCE_LOG_POSSOURCE_PASSWORDSOURCE_PORTSOURCE_PUBLIC_KEY_PATHSOURCE_RETRY_COUNTSOURCE_SSLSOURCE_SSL_CASOURCE_SSL_CAPATHSOURCE_SSL_CERTSOURCE_SSL_CIPHERSOURCE_SSL_CRLSOURCE_SSL_CRLPATHSOURCE_SSL_KEYSOURCE_SSL_VERIFY_SERVER_CERTSOURCE_TLS_CIPHERSUITESSOURCE_TLS_VERSIONSOURCE_USERSOURCE_ZSTD_COMPRESSION_LEVELSPATIAL(R)SPECIFIC(R)SQL(R)SQLEXCEPTION(R)SQLSTATE(R)SQLWARNING(R)SQL_AFTER_GTIDSSQL_AFTER_MTS_GAPSSQL_BEFORE_GTIDSSQL_BIG_RESULT(R)SQL_BUFFER_RESULTSQL_CALC_FOUND_ROWS(R)SQL_NO_CACHESQL_SMALL_RESULT(R)SQL_THREADSQL_TSI_DAYSQL_TSI_HOURSQL_TSI_MINUTESQL_TSI_MONTHSQL_TSI_QUARTERSQL_TSI_SECONDSQL_TSI_WEEKSQL_TSI_YEARSRIDSSL(R)STACKEDSTARTSTARTING(R)STARTSSTATS_AUTO_RECALCSTATS_PERSISTENTSTATS_SAMPLE_PAGESSTATUSSTOPSTORAGESTORED(R)STRAIGHT_JOIN(R)STREAMSTRINGSUBCLASS_ORIGINSUBJECTSUBPARTITIONSUBPARTITIONSSUPERSUSPENDSWAPSSWITCHESSYSTEM(R)
TABLE(R)TABLESTABLESAMPLE(R)TABLESPACETABLE_CHECKSUMTABLE_NAMETEMPORARYTEMPTABLETERMINATED(R)TEXTTHANTHEN(R)THREAD_PRIORITYTIESTIMETIMESTAMPTIMESTAMPADDTIMESTAMPDIFFTINYBLOB(R)TINYINT(R)TINYTEXT(R)TLSTO(R)TRAILING(R)TRANSACTIONTRIGGER(R)TRIGGERSTRUE(R)TRUNCATETYPETYPES
UNBOUNDEDUNCOMMITTEDUNDEFINEDUNDO(R)UNDOFILEUNDO_BUFFER_SIZEUNICODEUNINSTALLUNION(R)UNIQUE(R)UNKNOWNUNLOCK(R)UNREGISTERUNSIGNED(R)UNTILUPDATE(R)UPGRADEURLUSAGE(R)USE(R)USERUSER_RESOURCESUSE_FRMUSING(R)UTC_DATE(R)UTC_TIME(R)UTC_TIMESTAMP(R)
VALIDATIONVALUEVALUES(R)VARBINARY(R)VARCHAR(R)VARCHARACTER(R)VARIABLESVARYING(R)VCPUVIEWVIRTUAL(R)VISIBLE
WAITWARNINGSWEEKWEIGHT_STRINGWHEN(R)WHERE(R)WHILE(R)WINDOW(R)WITH(R)WITHOUTWORKWRAPPERWRITE(R)
X509XAXIDXMLXOR(R)
YEARYEAR_MONTH(R)
ZEROFILL(R)ZONE
以下列表显示了与 MySQL 8.0 相比,在 MySQL 8.4 中添加的关键字和保留字。保留关键字用 (R) 标记。
A | B | G | L | M | P | Q | S | T
AUTO
BERNOULLI
GTID
LOG
MANUAL(R)
PARALLEL(R)PARSE_TREE
QUALIFY(R)
S3
TABLESAMPLE(R)
以下列表显示了与 MySQL 8.0 相比,在 MySQL 8.4 中删除的关键字和保留字。保留关键字用 (R) 标记。
GET_MASTER_PUBLIC_KEY
MASTER_AUTO_POSITIONMASTER_BIND(R)MASTER_COMPRESSION_ALGORITHMSMASTER_CONNECT_RETRYMASTER_DELAYMASTER_HEARTBEAT_PERIODMASTER_HOSTMASTER_LOG_FILEMASTER_LOG_POSMASTER_PASSWORDMASTER_PORTMASTER_PUBLIC_KEY_PATHMASTER_RETRY_COUNTMASTER_SSLMASTER_SSL_CAMASTER_SSL_CAPATHMASTER_SSL_CERTMASTER_SSL_CIPHERMASTER_SSL_CRLMASTER_SSL_CRLPATHMASTER_SSL_KEYMASTER_SSL_VERIFY_SERVER_CERT(R)MASTER_TLS_CIPHERSUITESMASTER_TLS_VERSIONMASTER_USERMASTER_ZSTD_COMPRESSION_LEVEL