如何理解MySQL 5.7中的关键字和保留字
如何理解MySQL 5.7中的关键字和保留字,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
最近在将数据从Oracle迁移到MySQL的过程中,遇到一些问题,其中就包括关键字。
MySQL和Oracle的关键字还是不尽相同的,在Oracle数据库中,我们的数据表中定义了大量的code字段用来表示主键,但是在MySQL中code是关键字,使用以前的处理方法就有些“水土不服”。
下面我们来了解一下MySQL中的关键字和保留字。
关键字是指在SQL中有意义的字。 某些关键字(例如SELECT,DELETE或BIGINT)是保留的,需要特殊处理才能用作表和列名称等标识符。 这一点对于内置函数的名称也适用。
非保留关键字允许作为标识符,不需要加引号。 如果您要适用保留字作为标识符,就必须适用引号。
举个例子,BEGIN和END是关键字,但不是保留字,因此它们用作标识符不需要引号。 INTERVAL是保留关键字,必须加上引号才能用作标识符。
Table10.2Keywords and Reserved Words in MySQL 5.7
ADD(R)AFTERAGAINST
AGGREGATEALGORITHMALL(R)
ALTER(R)ALWAYS[b]ANALYSE
ANALYZE(R)AND(R)ANY
AS(R)ASC(R)ASCII
ASENSITIVE(R)ATAUTOEXTEND_SIZE
AUTO_INCREMENTAVGAVG_ROW_LENGTH
BACKUPBEFORE(R)BEGIN
BETWEEN(R)BIGINT(R)BINARY(R)
BINLOGBITBLOB(R)
BLOCKBOOLBOOLEAN
BOTH(R)BTREEBY(R)
BYTECACHECALL(R)
CASCADE(R)CASCADEDCASE(R)
CATALOG_NAMECHAINCHANGE(R)
CHANGEDCHANNEL[c]CHAR(R)
CHARACTER(R)CHARSETCHECK(R)
CHECKSUMCIPHERCLASS_ORIGIN
CLIENTCLOSECOALESCE
CODECOLLATE(R)COLLATION
COLUMN(R)COLUMNSCOLUMN_FORMAT
COLUMN_NAMECOMMENTCOMMIT
COMMITTEDCOMPACTCOMPLETION
COMPRESSEDCOMPRESSION[d]CONCURRENT
CONDITION(R)CONNECTIONCONSISTENT
CONSTRAINT(R)CONSTRAINT_CATALOGCONSTRAINT_NAME
CONSTRAINT_SCHEMACONTAINSCONTEXT
CONTINUE(R)CONVERT(R)CPU
CREATE(R)CROSS(R)CUBE
CURRENTCURRENT_DATE(R)CURRENT_TIME(R)
CURRENT_TIMESTAMP(R)CURRENT_USER(R)CURSOR(R)
CURSOR_NAMEDATADATABASE(R)
DATABASES(R)DATAFILEDATE
DATETIMEDAYDAY_HOUR(R)
DAY_MICROSECOND(R)DAY_MINUTE(R)DAY_SECOND(R)
DEALLOCATEDEC(R)DECIMAL(R)
DECLARE(R)DEFAULT(R)DEFAULT_AUTH
DEFINERDELAYED(R)DELAY_KEY_WRITE
DELETE(R)DESC(R)DESCRIBE(R)
DES_KEY_FILEDETERMINISTIC(R)DIAGNOSTICS
DIRECTORYDISABLEDISCARD
DISKDISTINCT(R)DISTINCTROW(R)
DIV(R)DODOUBLE(R)
DROP(R)DUAL(R)DUMPFILE
DUPLICATEDYNAMICEACH(R)
ELSE(R)ELSEIF(R)ENABLE
ENCLOSED(R)ENCRYPTION[e]END
ENDSENGINEENGINES
ENUMERRORERRORS
ESCAPEESCAPED(R)EVENT
EVENTSEVERYEXCHANGE
EXECUTEEXISTS(R)EXIT(R)
EXPANSIONEXPIREEXPLAIN(R)
EXPORTEXTENDEDEXTENT_SIZE
FALSE(R)FASTFAULTS
FETCH(R)FIELDSFILE
FILE_BLOCK_SIZE[f]FILTER[g]FIRST
FIXEDFLOAT(R)FLOAT4(R)
FLOAT8(R)FLUSHFOLLOWS[h]
FOR(R)FORCE(R)FOREIGN(R)
FORMATFOUNDFROM(R)
FULLFULLTEXT(R)FUNCTION
GENERALGENERATED[i](R)GEOMETRY
GEOMETRYCOLLECTIONGET(R)GET_FORMAT
GLOBALGRANT(R)GRANTS
GROUP(R)GROUP_REPLICATION[j]HANDLER
HASHHAVING(R)HELP
HIGH_PRIORITY(R)HOSTHOSTS
HOURHOUR_MICROSECOND(R)HOUR_MINUTE(R)
HOUR_SECOND(R)IDENTIFIEDIF(R)
IGNORE(R)IGNORE_SERVER_IDSIMPORT
IN(R)INDEX(R)INDEXES
INFILE(R)INITIAL_SIZEINNER(R)
INOUT(R)INSENSITIVE(R)INSERT(R)
INSERT_METHODINSTALLINSTANCE[k]
INT(R)INT1(R)INT2(R)
INT3(R)INT4(R)INT8(R)
INTEGER(R)INTERVAL(R)INTO(R)
INVOKERIOIO_AFTER_GTIDS(R)
IO_BEFORE_GTIDS(R)IO_THREADIPC
IS(R)ISOLATIONISSUER
ITERATE(R)JOIN(R)JSON[l]
KEY(R)KEYS(R)KEY_BLOCK_SIZE
KILL(R)LANGUAGELAST
LEADING(R)LEAVE(R)LEAVES
LEFT(R)LESSLEVEL
LIKE(R)LIMIT(R)LINEAR(R)
LINES(R)LINESTRINGLIST
LOAD(R)LOCALLOCALTIME(R)
LOCALTIMESTAMP(R)LOCK(R)LOCKS
LOGFILELOGSLONG(R)
LONGBLOB(R)LONGTEXT(R)LOOP(R)
LOW_PRIORITY(R)MASTERMASTER_AUTO_POSITION
MASTER_BIND(R)MASTER_CONNECT_RETRYMASTER_DELAY
MASTER_HEARTBEAT_PERIODMASTER_HOSTMASTER_LOG_FILE
MASTER_LOG_POSMASTER_PASSWORDMASTER_PORT
MASTER_RETRY_COUNTMASTER_SERVER_IDMASTER_SSL
MASTER_SSL_CAMASTER_SSL_CAPATHMASTER_SSL_CERT
MASTER_SSL_CIPHERMASTER_SSL_CRLMASTER_SSL_CRLPATH
MASTER_SSL_KEYMASTER_SSL_VERIFY_SERVER_CERT(R)MASTER_TLS_VERSION[m]
MASTER_USERMATCH(R)MAXVALUE(R)
MAX_CONNECTIONS_PER_HOURMAX_QUERIES_PER_HOURMAX_ROWS
MAX_SIZEMAX_STATEMENT_TIME[n]MAX_UPDATES_PER_HOUR
MAX_USER_CONNECTIONSMEDIUMMEDIUMBLOB(R)
MEDIUMINT(R)MEDIUMTEXT(R)MEMORY
MERGEMESSAGE_TEXTMICROSECOND
MIDDLEINT(R)MIGRATEMINUTE
MINUTE_MICROSECOND(R)MINUTE_SECOND(R)MIN_ROWS
MOD(R)MODEMODIFIES(R)
MODIFYMONTHMULTILINESTRING
MULTIPOINTMULTIPOLYGONMUTEX
MYSQL_ERRNONAMENAMES
NATIONALNATURAL(R)NCHAR
NDBNDBCLUSTERNEVER[o]
NEWNEXTNO
NODEGROUPNONBLOCKING[p]NONE
NOT(R)NO_WAITNO_WRITE_TO_BINLOG(R)
NULL(R)NUMBERNUMERIC(R)
NVARCHAROFFSETOLD_PASSWORD[q]
ON(R)ONEONLY
OPENOPTIMIZE(R)OPTIMIZER_COSTS[r](R)
OPTION(R)OPTIONALLY(R)OPTIONS
OR(R)ORDER(R)OUT(R)
OUTER(R)OUTFILE(R)OWNER
PACK_KEYSPAGEPARSER
PARSE_GCOL_EXPR[s]PARTIALPARTITION(R)
PARTITIONINGPARTITIONSPASSWORD
PHASEPLUGINPLUGINS
PLUGIN_DIRPOINTPOLYGON
PORTPRECEDES[t]PRECISION(R)
PREPAREPRESERVEPREV
PRIMARY(R)PRIVILEGESPROCEDURE(R)
PROCESSLISTPROFILEPROFILES
PROXYPURGE(R)QUARTER
QUERYQUICKRANGE(R)
READ(R)READS(R)READ_ONLY
READ_WRITE(R)REAL(R)REBUILD
RECOVERREDOFILEREDO_BUFFER_SIZE
REDUNDANTREFERENCES(R)REGEXP(R)
RELAYRELAYLOGRELAY_LOG_FILE
RELAY_LOG_POSRELAY_THREADRELEASE(R)
RELOADREMOVERENAME(R)
REORGANIZEREPAIRREPEAT(R)
REPEATABLEREPLACE(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]
REPLICATIONREQUIRE(R)RESET
RESIGNAL(R)RESTORERESTRICT(R)
RESUMERETURN(R)RETURNED_SQLSTATE
RETURNSREVERSEREVOKE(R)
RIGHT(R)RLIKE(R)ROLLBACK
ROLLUPROTATE[ab]ROUTINE
ROWROWSROW_COUNT
ROW_FORMATRTREESAVEPOINT
SCHEDULESCHEMA(R)SCHEMAS(R)
SCHEMA_NAMESECONDSECOND_MICROSECOND(R)
SECURITYSELECT(R)SENSITIVE(R)
SEPARATOR(R)SERIALSERIALIZABLE
SERVERSESSIONSET(R)
SHARESHOW(R)SHUTDOWN
SIGNAL(R)SIGNEDSIMPLE
SLAVESLOWSMALLINT(R)
SNAPSHOTSOCKETSOME
SONAMESOUNDSSOURCE
SPATIAL(R)SPECIFIC(R)SQL(R)
SQLEXCEPTION(R)SQLSTATE(R)SQLWARNING(R)
SQL_AFTER_GTIDSSQL_AFTER_MTS_GAPSSQL_BEFORE_GTIDS
SQL_BIG_RESULT(R)SQL_BUFFER_RESULTSQL_CACHE
SQL_CALC_FOUND_ROWS(R)SQL_NO_CACHESQL_SMALL_RESULT(R)
SQL_THREADSQL_TSI_DAYSQL_TSI_HOUR
SQL_TSI_MINUTESQL_TSI_MONTHSQL_TSI_QUARTER
SQL_TSI_SECONDSQL_TSI_WEEKSQL_TSI_YEAR
SSL(R)STACKEDSTART
STARTING(R)STARTSSTATS_AUTO_RECALC
STATS_PERSISTENTSTATS_SAMPLE_PAGESSTATUS
STOPSTORAGESTORED[ac](R)
STRAIGHT_JOIN(R)STRINGSUBCLASS_ORIGIN
SUBJECTSUBPARTITIONSUBPARTITIONS
SUPERSUSPENDSWAPS
SWITCHESTABLE(R)TABLES
TABLESPACETABLE_CHECKSUMTABLE_NAME
TEMPORARYTEMPTABLETERMINATED(R)
TEXTTHANTHEN(R)
TIMETIMESTAMPTIMESTAMPADD
TIMESTAMPDIFFTINYBLOB(R)TINYINT(R)
TINYTEXT(R)TO(R)TRAILING(R)
TRANSACTIONTRIGGER(R)TRIGGERS
TRUE(R)TRUNCATETYPE
TYPESUNCOMMITTEDUNDEFINED
UNDO(R)UNDOFILEUNDO_BUFFER_SIZE
UNICODEUNINSTALLUNION(R)
UNIQUE(R)UNKNOWNUNLOCK(R)
UNSIGNED(R)UNTILUPDATE(R)
UPGRADEUSAGE(R)USE(R)
USERUSER_RESOURCESUSE_FRM
USING(R)UTC_DATE(R)UTC_TIME(R)
UTC_TIMESTAMP(R)VALIDATION[ad]VALUE
VALUES(R)VARBINARY(R)VARCHAR(R)
VARCHARACTER(R)VARIABLESVARYING(R)
VIEWVIRTUAL[ae](R)WAIT
WARNINGSWEEKWEIGHT_STRING
WHEN(R)WHERE(R)WHILE(R)
WITH(R)WITHOUT[af]WORK
WRAPPERWRITE(R)X509
XAXID[ag]XML
XOR(R)YEARYEAR_MONTH(R)
ZEROFILL(R)
[a]ACCOUNT: added in 5.7.6 (nonreserved)
[b]ALWAYS: added in 5.7.6 (nonreserved)
[c]CHANNEL: added in 5.7.6 (nonreserved)
[d]COMPRESSION: added in 5.7.8 (nonreserved)
[e]ENCRYPTION: added in 5.7.11 (nonreserved)
[f]FILE_BLOCK_SIZE: added in 5.7.6 (nonreserved)
[g]FILTER: added in 5.7.3 (nonreserved)
[h]FOLLOWS: added in 5.7.2 (nonreserved)
[i]GENERATED: added in 5.7.6 (reserved)
[j]GROUP_REPLICATION: added in 5.7.6 (nonreserved)
[k]INSTANCE: added in 5.7.11 (nonreserved)
[l]JSON: added in 5.7.8 (nonreserved)
[m]MASTER_TLS_VERSION: added in 5.7.10 (nonreserved)
[n]MAX_STATEMENT_TIME: added in 5.7.4 (nonreserved); removed in 5.7.8
[o]NEVER: added in 5.7.4 (nonreserved)
[p]NONBLOCKING: removed in 5.7.6
[q]OLD_PASSWORD: removed in 5.7.5
[r]OPTIMIZER_COSTS: added in 5.7.5 (reserved)
[s]PARSE_GCOL_EXPR: added in 5.7.6 (reserved); became nonreserved in 5.7.8
[t]PRECEDES: added in 5.7.2 (nonreserved)
[u]REPLICATE_DO_DB: added in 5.7.3 (nonreserved)
[v]REPLICATE_DO_TABLE: added in 5.7.3 (nonreserved)
[w]REPLICATE_IGNORE_DB: added in 5.7.3 (nonreserved)
[x]REPLICATE_IGNORE_TABLE: added in 5.7.3 (nonreserved)
[y]REPLICATE_REWRITE_DB: added in 5.7.3 (nonreserved)
[z]REPLICATE_WILD_DO_TABLE: added in 5.7.3 (nonreserved)
[aa]REPLICATE_WILD_IGNORE_TABLE: added in 5.7.3 (nonreserved)
[ab]ROTATE: added in 5.7.11 (nonreserved)
[ac]STORED: added in 5.7.6 (reserved)
[ad]VALIDATION: added in 5.7.5 (nonreserved)
[ae]VIRTUAL: added in 5.7.6 (reserved)
[af]WITHOUT: added in 5.7.5 (nonreserved)
[ag]XID: added in 5.7.5 (nonreserved)
Table10.3Keywords and Reserved Words Added in MySQL 5.7 Compared to MySQL 5.6
ACCOUNTALWAYSCHANNELCOMPRESSIONENCRYPTIONFILE_BLOCK_SIZEFILTERFOLLOWSGENERATED(R)GROUP_REPLICATIONINSTANCEJSONMASTER_TLS_VERSIONNEVEROPTIMIZER_COSTS(R)PARSE_GCOL_EXPRPRECEDESREPLICATE_DO_DBREPLICATE_DO_TABLEREPLICATE_IGNORE_DBREPLICATE_IGNORE_TABLEREPLICATE_REWRITE_DBREPLICATE_WILD_DO_TABLEREPLICATE_WILD_IGNORE_TABLEROTATESTACKEDSTORED(R)VALIDATIONVIRTUAL(R)WITHOUTXID关于如何理解MySQL 5.7中的关键字和保留字问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。