3

有没有办法使用命令行实用程序(mysql)列出MySQL(5.x)中的所有保留字?

4

5 回答 5

13

MySQL(5.x)中有一个mysql模式

您可以查询:

SELECT * FROM mysql.help_keyword;
于 2013-01-31T11:18:56.243 回答
4

这是截至 5.6 的完整列表...

DROP TABLE IF EXISTS reserved_words;

CREATE TABLE reserved_words (keyword VARCHAR(30) NOT NULL PRIMARY KEY);

INSERT INTO reserved_words VALUES
("ACCESSIBLE"),
("ADD"),
("ALL"),
("ALTER"),
("ANALYZE"),
("AND"),
("AS"),
("ASC"),
("ASENSITIVE"),
("BEFORE"),
("BETWEEN"),
("BIGINT"),
("BINARY"),
("BLOB"),
("BOTH"),
("BY"),
("CALL"),
("CASCADE"),
("CASE"),
("CHANGE"),
("CHAR"),
("CHARACTER"),
("CHECK"),
("COLLATE"),
("COLUMN"),
("CONDITION"),
("CONSTRAINT"),
("CONTINUE"),
("CONVERT"),
("CREATE"),
("CROSS"),
("CURRENT_DATE"),
("CURRENT_TIME"),
("CURRENT_TIMESTAMP"),
("CURRENT_USER"),
("CURSOR"),
("DATABASE"),
("DATABASES"),
("DAY_HOUR"),
("DAY_MICROSECOND"),
("DAY_MINUTE"),
("DAY_SECOND"),
("DEC"),
("DECIMAL"),
("DECLARE"),
("DEFAULT"),
("DELAYED"),
("DELETE"),
("DESC"),
("DESCRIBE"),
("DETERMINISTIC"),
("DISTINCT"),
("DISTINCTROW"),
("DIV"),
("DOUBLE"),
("DROP"),
("DUAL"),
("EACH"),
("ELSE"),
("ELSEIF"),
("ENCLOSED"),
("ESCAPED"),
("EXISTS"),
("EXIT"),
("EXPLAIN"),
("FALSE"),
("FETCH"),
("FLOAT"),
("FLOAT4"),
("FLOAT8"),
("FOR"),
("FORCE"),
("FOREIGN"),
("FROM"),
("FULLTEXT"),
("GET"),
("GRANT"),
("GROUP"),
("HAVING"),
("HIGH_PRIORITY"),
("HOUR_MICROSECOND"),
("HOUR_MINUTE"),
("HOUR_SECOND"),
("IF"),
("IGNORE"),
("IN"),
("INDEX"),
("INFILE"),
("INNER"),
("INOUT"),
("INSENSITIVE"),
("INSERT"),
("INT"),
("INT1"),
("INT2"),
("INT3"),
("INT4"),
("INT8"),
("INTEGER"),
("INTERVAL"),
("INTO"),
("IO_AFTER_GTIDS"),
("IO_BEFORE_GTIDS"),
("IS"),
("ITERATE"),
("JOIN"),
("KEY"),
("KEYS"),
("KILL"),
("LEADING"),
("LEAVE"),
("LEFT"),
("LIKE"),
("LIMIT"),
("LINEAR"),
("LINES"),
("LOAD"),
("LOCALTIME"),
("LOCALTIMESTAMP"),
("LOCK"),
("LONG"),
("LONGBLOB"),
("LONGTEXT"),
("LOOP"),
("LOW_PRIORITY"),
("MASTER_BIND"),
("MASTER_SSL_VERIFY_SERVER_CERT"),
("MATCH"),
("MAXVALUE"),
("MEDIUMBLOB"),
("MEDIUMINT"),
("MEDIUMTEXT"),
("MIDDLEINT"),
("MINUTE_MICROSECOND"),
("MINUTE_SECOND"),
("MOD"),
("MODIFIES"),
("NATURAL"),
("NOT"),
("NO_WRITE_TO_BINLOG"),
("NULL"),
("NUMERIC"),
("ON"),
("OPTIMIZE"),
("OPTION"),
("OPTIONALLY"),
("OR"),
("ORDER"),
("OUT"),
("OUTER"),
("OUTFILE"),
("PARTITION"),
("PRECISION"),
("PRIMARY"),
("PROCEDURE"),
("PURGE"),
("RANGE"),
("READ"),
("READS"),
("READ_WRITE"),
("REAL"),
("REFERENCES"),
("REGEXP"),
("RELEASE"),
("RENAME"),
("REPEAT"),
("REPLACE"),
("REQUIRE"),
("RESIGNAL"),
("RESTRICT"),
("RETURN"),
("REVOKE"),
("RIGHT"),
("RLIKE"),
("SCHEMA"),
("SCHEMAS"),
("SECOND_MICROSECOND"),
("SELECT"),
("SENSITIVE"),
("SEPARATOR"),
("SET"),
("SHOW"),
("SIGNAL"),
("SMALLINT"),
("SPATIAL"),
("SPECIFIC"),
("SQL"),
("SQLEXCEPTION"),
("SQLSTATE"),
("SQLWARNING"),
("SQL_BIG_RESULT"),
("SQL_CALC_FOUND_ROWS"),
("SQL_SMALL_RESULT"),
("SSL"),
("STARTING"),
("STRAIGHT_JOIN"),
("TABLE"),
("TERMINATED"),
("THEN"),
("TINYBLOB"),
("TINYINT"),
("TINYTEXT"),
("TO"),
("TRAILING"),
("TRIGGER"),
("TRUE"),
("UNDO"),
("UNION"),
("UNIQUE"),
("UNLOCK"),
("UNSIGNED"),
("UPDATE"),
("USAGE"),
("USE"),
("USING"),
("UTC_DATE"),
("UTC_TIME"),
("UTC_TIMESTAMP"),
("VALUES"),
("VARBINARY"),
("VARCHAR"),
("VARCHARACTER"),
("VARYING"),
("WHEN"),
("WHERE"),
("WHILE"),
("WITH"),
("WRITE"),
("XOR"),
("YEAR_MONTH"),
("ZEROFILL");
于 2013-01-31T11:23:51.650 回答
0

我不这么认为。文档上有一条评论建议创建一个包含以下单词的表格:

create table reserved_words (reserved_word varchar(50));
insert into reserved_words (reserved_word) values
('ACCESSIBLE'),
('ALTER'),
('AS'),
('BEFORE'),
('BINARY'),
('BY'),
('CASE'),
('CHARACTER'),
('COLUMN'),
('CONTINUE'),
('CROSS'),
('CURRENT_TIMESTAMP'),
('DATABASE'),
('DAY_MICROSECOND'),
('DEC'),
('DEFAULT'),
('DESC'),
('DISTINCT'),
('DOUBLE'),
('EACH'),
('ENCLOSED'),
('EXIT'),
('FETCH'),
('FLOAT8'),
('FOREIGN'),
('GRANT'),
('HIGH_PRIORITY'),
('HOUR_SECOND'),
('IN'),
('INNER'),
('INSERT'),
('INT2'),
('INT8'),
('INTO'),
('JOIN'),
('KILL'),
('LEFT'),
('LINEAR'),
('LOCALTIME'),
('LONG'),
('LOOP'),
('MATCH'),
('MEDIUMTEXT'),
('MINUTE_SECOND'),
('NATURAL'),
('NULL'),
('OPTIMIZE'),
('OR'),
('OUTER'),
('PRIMARY'),
('RANGE'),
('READ_WRITE'),
('REGEXP'),
('REPEAT'),
('RESTRICT'),
('RIGHT'),
('SCHEMAS'),
('SENSITIVE'),
('SHOW'),
('SPECIFIC'),
('SQLSTATE'),
('SQL_CALC_FOUND_ROWS'),
('STARTING'),
('TERMINATED'),
('TINYINT'),
('TRAILING'),
('UNDO'),
('UNLOCK'),
('USAGE'),
('UTC_DATE'),
('VALUES'),
('VARCHARACTER'),
('WHERE'),
('WRITE'),
('ZEROFILL'),
('ALL'),
('AND'),
('ASENSITIVE'),
('BIGINT'),
('BOTH'),
('CASCADE'),
('CHAR'),
('COLLATE'),
('CONSTRAINT'),
('CREATE'),
('CURRENT_TIME'),
('CURSOR'),
('DAY_HOUR'),
('DAY_SECOND'),
('DECLARE'),
('DELETE'),
('DETERMINISTIC'),
('DIV'),
('DUAL'),
('ELSEIF'),
('EXISTS'),
('FALSE'),
('FLOAT4'),
('FORCE'),
('FULLTEXT'),
('HAVING'),
('HOUR_MINUTE'),
('IGNORE'),
('INFILE'),
('INSENSITIVE'),
('INT1'),
('INT4'),
('INTERVAL'),
('ITERATE'),
('KEYS'),
('LEAVE'),
('LIMIT'),
('LOAD'),
('LOCK'),
('LONGTEXT'),
('MASTER_SSL_VERIFY_SERVER_CERT'),
('MEDIUMINT'),
('MINUTE_MICROSECOND'),
('MODIFIES'),
('NO_WRITE_TO_BINLOG'),
('ON'),
('OPTIONALLY'),
('OUT'),
('PRECISION'),
('PURGE'),
('READS'),
('REFERENCES'),
('RENAME'),
('REQUIRE'),
('REVOKE'),
('SCHEMA'),
('SELECT'),
('SET'),
('SPATIAL'),
('SQLEXCEPTION'),
('SQL_BIG_RESULT'),
('SSL'),
('TABLE'),
('TINYBLOB'),
('TO'),
('TRUE'),
('UNIQUE'),
('UPDATE'),
('USING'),
('UTC_TIMESTAMP'),
('VARCHAR'),
('WHEN'),
('WITH'),
('YEAR_MONTH'),
('ADD'),
('ANALYZE'),
('ASC'),
('BETWEEN'),
('BLOB'),
('CALL'),
('CHANGE'),
('CHECK'),
('CONDITION'),
('CONVERT'),
('CURRENT_DATE'),
('CURRENT_USER'),
('DATABASES'),
('DAY_MINUTE'),
('DECIMAL'),
('DELAYED'),
('DESCRIBE'),
('DISTINCTROW'),
('DROP'),
('ELSE'),
('ESCAPED'),
('EXPLAIN'),
('FLOAT'),
('FOR'),
('FROM'),
('GROUP'),
('HOUR_MICROSECOND'),
('IF'),
('INDEX'),
('INOUT'),
('INT'),
('INT3'),
('INTEGER'),
('IS'),
('KEY'),
('LEADING'),
('LIKE'),
('LINES'),
('LOCALTIMESTAMP'),
('LONGBLOB'),
('LOW_PRIORITY'),
('MEDIUMBLOB'),
('MIDDLEINT'),
('MOD'),
('NOT'),
('NUMERIC'),
('OPTION'),
('ORDER'),
('OUTFILE'),
('PROCEDURE'),
('READ'),
('REAL'),
('RELEASE'),
('REPLACE'),
('RETURN'),
('RLIKE'),
('SECOND_MICROSECOND'),
('SEPARATOR'),
('SMALLINT'),
('SQL'),
('SQLWARNING'),
('SQL_SMALL_RESULT'),
('STRAIGHT_JOIN'),
('THEN'),
('TINYTEXT'),
('TRIGGER'),
('UNION'),
('UNSIGNED'),
('USE'),
('UTC_TIME'),
('VARBINARY'),
('VARYING'),
('WHILE'),
('XOR')
;
于 2013-01-31T11:18:26.677 回答
0

MySQL8.0的所有保留字都是从这里提取的:

ACCESSIBLE,
ACCOUNT,
ACTION,
ACTIVE,
ADD,
ADMIN,
AFTER,
AGAINST,
AGGREGATE,
ALGORITHM,
ALL,
ALTER,
ALWAYS,
ANALYSE,
ANALYZE,
AND,
ANY,
ARRAY,
AS,
ASC,
ASCII,
ASENSITIVE,
AT,
AUTOEXTEND_SIZE,
AUTO_INCREMENT,
AVG,
AVG_ROW_LENGTH,
BACKUP,
BEFORE,
BEGIN,
BETWEEN,
BIGINT,
BINARY,
BINLOG,
BIT,
BLOB,
BLOCK,
BOOL,
BOOLEAN,
BOTH,
BTREE,
BUCKETS,
BY,
BYTE,
CACHE,
CALL,
CASCADE,
CASCADED,
CASE,
CATALOG_NAME,
CHAIN,
CHANGE,
CHANGED,
CHANNEL,
CHAR,
CHARACTER,
CHARSET,
CHECK,
CHECKSUM,
CIPHER,
CLASS_ORIGIN,
CLIENT,
CLONE,
CLOSE,
COALESCE,
CODE,
COLLATE,
COLLATION,
COLUMN,
COLUMNS,
COLUMN_FORMAT,
COLUMN_NAME,
COMMENT,
COMMIT,
COMMITTED,
COMPACT,
COMPLETION,
COMPONENT,
COMPRESSED,
COMPRESSION,
CONCURRENT,
CONDITION,
CONNECTION,
CONSISTENT,
CONSTRAINT,
CONSTRAINT_CATALOG,
CONSTRAINT_NAME,
CONSTRAINT_SCHEMA,
CONTAINS,
CONTEXT,
CONTINUE,
CONVERT,
CPU,
CREATE,
CROSS,
CUBE,
CUME_DIST,
CURRENT,
CURRENT_DATE,
CURRENT_TIME,
CURRENT_TIMESTAMP,
CURRENT_USER,
CURSOR,
CURSOR_NAME,
DATA,
DATABASE,
DATABASES,
DATAFILE,
DATE,
DATETIME,
DAY,
DAY_HOUR,
DAY_MICROSECOND,
DAY_MINUTE,
DAY_SECOND,
DEALLOCATE,
DEC,
DECIMAL,
DECLARE,
DEFAULT,
DEFAULT_AUTH,
DEFINER,
DEFINITION,
DELAYED,
DELAY_KEY_WRITE,
DELETE,
DENSE_RANK,
DESC,
DESCRIBE,
DESCRIPTION,
DES_KEY_FILE,
DETERMINISTIC,
DIAGNOSTICS,
DIRECTORY,
DISABLE,
DISCARD,
DISK,
DISTINCT,
DISTINCTROW,
DIV,
DO,
DOUBLE,
DROP,
DUAL,
DUMPFILE,
DUPLICATE,
DYNAMIC,
EACH,
ELSE,
ELSEIF,
EMPTY,
ENABLE,
ENCLOSED,
ENCRYPTION,
END,
ENDS,
ENFORCED,
ENGINE,
ENGINES,
ENUM,
ERROR,
ERRORS,
ESCAPE,
ESCAPED,
EVENT,
EVENTS,
EVERY,
EXCEPT,
EXCHANGE,
EXCLUDE,
EXECUTE,
EXISTS,
EXIT,
EXPANSION,
EXPIRE,
EXPLAIN,
EXPORT,
EXTENDED,
EXTENT_SIZE,
FAILED_LOGIN_ATTEMPTS,
FALSE,
FAST,
FAULTS,
FETCH,
FIELDS,
FILE,
FILE_BLOCK_SIZE,
FILTER,
FIRST,
FIRST_VALUE,
FIXED,
FLOAT,
FLOAT4,
FLOAT8,
FLUSH,
FOLLOWING,
FOLLOWS,
FOR,
FORCE,
FOREIGN,
FORMAT,
FOUND,
FROM,
FULL,
FULLTEXT,
FUNCTION,
GENERAL,
GENERATED,
GEOMCOLLECTION,
GEOMETRY,
GEOMETRYCOLLECTION,
GET,
GET_FORMAT,
GET_MASTER_PUBLIC_KEY,
GLOBAL,
GRANT,
GRANTS,
GROUP,
GROUPING,
GROUPS,
GROUP_REPLICATION,
HANDLER,
HASH,
HAVING,
HELP,
HIGH_PRIORITY,
HISTOGRAM,
HISTORY,
HOST,
HOSTS,
HOUR,
HOUR_MICROSECOND,
HOUR_MINUTE,
HOUR_SECOND,
IDENTIFIED,
IF,
IGNORE,
IGNORE_SERVER_IDS,
IMPORT,
IN,
INACTIVE,
INDEX,
INDEXES,
INFILE,
INITIAL_SIZE,
INNER,
INOUT,
INSENSITIVE,
INSERT,
INSERT_METHOD,
INSTALL,
INSTANCE,
INT,
INT1,
INT2,
INT3,
INT4,
INT8,
INTEGER,
INTERVAL,
INTO,
INVISIBLE,
INVOKER,
IO,
IO_AFTER_GTIDS,
IO_BEFORE_GTIDS,
IO_THREAD,
IPC,
IS,
ISOLATION,
ISSUER,
ITERATE,
JOIN,
JSON,
JSON_TABLE,
JSON_VALUE,
KEY,
KEYS,
KEY_BLOCK_SIZE,
KILL,
LAG,
LANGUAGE,
LAST,
LAST_VALUE,
LATERAL,
LEAD,
LEADING,
LEAVE,
LEAVES,
LEFT,
LESS,
LEVEL,
LIKE,
LIMIT,
LINEAR,
LINES,
LINESTRING,
LIST,
LOAD,
LOCAL,
LOCALTIME,
LOCALTIMESTAMP,
LOCK,
LOCKED,
LOCKS,
LOGFILE,
LOGS,
LONG,
LONGBLOB,
LONGTEXT,
LOOP,
LOW_PRIORITY,
MASTER,
MASTER_AUTO_POSITION,
MASTER_BIND,
MASTER_COMPRESSION_ALGORITHMS,
MASTER_CONNECT_RETRY,
MASTER_DELAY,
MASTER_HEARTBEAT_PERIOD,
MASTER_HOST,
MASTER_LOG_FILE,
MASTER_LOG_POS,
MASTER_PASSWORD,
MASTER_PORT,
MASTER_PUBLIC_KEY_PATH,
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,
MASTER_TLS_CIPHERSUITES,
MASTER_TLS_VERSION,
MASTER_USER,
MASTER_ZSTD_COMPRESSION_LEVEL,
MATCH,
MAXVALUE,
MAX_CONNECTIONS_PER_HOUR,
MAX_QUERIES_PER_HOUR,
MAX_ROWS,
MAX_SIZE,
MAX_UPDATES_PER_HOUR,
MAX_USER_CONNECTIONS,
MEDIUM,
MEDIUMBLOB,
MEDIUMINT,
MEDIUMTEXT,
MEMBER,
MEMORY,
MERGE,
MESSAGE_TEXT,
MICROSECOND,
MIDDLEINT,
MIGRATE,
MINUTE,
MINUTE_MICROSECOND,
MINUTE_SECOND,
MIN_ROWS,
MOD,
MODE,
MODIFIES,
MODIFY,
MONTH,
MULTILINESTRING,
MULTIPOINT,
MULTIPOLYGON,
MUTEX,
MYSQL_ERRNO,
NAME,
NAMES,
NATIONAL,
NATURAL,
NCHAR,
NDB,
NDBCLUSTER,
NESTED,
NETWORK_NAMESPACE,
NEVER,
NEW,
NEXT,
NO,
NODEGROUP,
NONE,
NOT,
NOWAIT,
NO_WAIT,
NO_WRITE_TO_BINLOG,
NTH_VALUE,
NTILE,
NULL,
NULLS,
NUMBER,
NUMERIC,
NVARCHAR,
OF,
OFF,
OFFSET,
OJ,
OLD,
ON,
ONE,
ONLY,
OPEN,
OPTIMIZE,
OPTIMIZER_COSTS,
OPTION,
OPTIONAL,
OPTIONALLY,
OPTIONS,
OR,
ORDER,
ORDINALITY,
ORGANIZATION,
OTHERS,
OUT,
OUTER,
OUTFILE,
OVER,
OWNER,
PACK_KEYS,
PAGE,
PARSER,
PARTIAL,
PARTITION,
PARTITIONING,
PARTITIONS,
PASSWORD,
PASSWORD_LOCK_TIME,
PATH,
PERCENT_RANK,
PERSIST,
PERSIST_ONLY,
PHASE,
PLUGIN,
PLUGINS,
PLUGIN_DIR,
POINT,
POLYGON,
PORT,
PRECEDES,
PRECEDING,
PRECISION,
PREPARE,
PRESERVE,
PREV,
PRIMARY,
PRIVILEGES,
PRIVILEGE_CHECKS_USER,
PROCEDURE,
PROCESS,
PROCESSLIST,
PROFILE,
PROFILES,
PROXY,
PURGE,
QUARTER,
QUERY,
QUICK,
RANDOM,
RANGE,
RANK,
READ,
READS,
READ_ONLY,
READ_WRITE,
REAL,
REBUILD,
RECOVER,
RECURSIVE,
REDOFILE,
REDO_BUFFER_SIZE,
REDUNDANT,
REFERENCE,
REFERENCES,
REGEXP,
RELAY,
RELAYLOG,
RELAY_LOG_FILE,
RELAY_LOG_POS,
RELAY_THREAD,
RELEASE,
RELOAD,
REMOTE,
REMOVE,
RENAME,
REORGANIZE,
REPAIR,
REPEAT,
REPEATABLE,
REPLACE,
REPLICATE_DO_DB,
REPLICATE_DO_TABLE,
REPLICATE_IGNORE_DB,
REPLICATE_IGNORE_TABLE,
REPLICATE_REWRITE_DB,
REPLICATE_WILD_DO_TABLE,
REPLICATE_WILD_IGNORE_TABLE,
REPLICATION,
REQUIRE,
REQUIRE_ROW_FORMAT,
RESET,
RESIGNAL,
RESOURCE,
RESPECT,
RESTART,
RESTORE,
RESTRICT,
RESUME,
RETAIN,
RETURN,
RETURNED_SQLSTATE,
RETURNING,
RETURNS,
REUSE,
REVERSE,
REVOKE,
RIGHT,
RLIKE,
ROLE,
ROLLBACK,
ROLLUP,
ROTATE,
ROUTINE,
ROW,
ROWS,
ROW_COUNT,
ROW_FORMAT,
ROW_NUMBER,
RTREE,
SAVEPOINT,
SCHEDULE,
SCHEMA,
SCHEMAS,
SCHEMA_NAME,
SECOND,
SECONDARY,
SECONDARY_ENGINE,
SECONDARY_LOAD,
SECONDARY_UNLOAD,
SECOND_MICROSECOND,
SECURITY,
SELECT,
SENSITIVE,
SEPARATOR,
SERIAL,
SERIALIZABLE,
SERVER,
SESSION,
SET,
SHARE,
SHOW,
SHUTDOWN,
SIGNAL,
SIGNED,
SIMPLE,
SKIP,
SLAVE,
SLOW,
SMALLINT,
SNAPSHOT,
SOCKET,
SOME,
SONAME,
SOUNDS,
SOURCE,
SPATIAL,
SPECIFIC,
SQL,
SQLEXCEPTION,
SQLSTATE,
SQLWARNING,
SQL_AFTER_GTIDS,
SQL_AFTER_MTS_GAPS,
SQL_BEFORE_GTIDS,
SQL_BIG_RESULT,
SQL_BUFFER_RESULT,
SQL_CACHE,
SQL_CALC_FOUND_ROWS,
SQL_NO_CACHE,
SQL_SMALL_RESULT,
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,
SRID,
SSL,
STACKED,
START,
STARTING,
STARTS,
STATS_AUTO_RECALC,
STATS_PERSISTENT,
STATS_SAMPLE_PAGES,
STATUS,
STOP,
STORAGE,
STORED,
STRAIGHT_JOIN,
STREAM,
STRING,
SUBCLASS_ORIGIN,
SUBJECT,
SUBPARTITION,
SUBPARTITIONS,
SUPER,
SUSPEND,
SWAPS,
SWITCHES,
SYSTEM,
TABLE,
TABLES,
TABLESPACE,
TABLE_CHECKSUM,
TABLE_NAME,
TEMPORARY,
TEMPTABLE,
TERMINATED,
TEXT,
THAN,
THEN,
THREAD_PRIORITY,
TIES,
TIME,
TIMESTAMP,
TIMESTAMPADD,
TIMESTAMPDIFF,
TINYBLOB,
TINYINT,
TINYTEXT,
TLS,
TO,
TRAILING,
TRANSACTION,
TRIGGER,
TRIGGERS,
TRUE,
TRUNCATE,
TYPE,
TYPES,
UNBOUNDED,
UNCOMMITTED,
UNDEFINED,
UNDO,
UNDOFILE,
UNDO_BUFFER_SIZE,
UNICODE,
UNINSTALL,
UNION,
UNIQUE,
UNKNOWN,
UNLOCK,
UNSIGNED,
UNTIL,
UPDATE,
UPGRADE,
USAGE,
USE,
USER,
USER_RESOURCES,
USE_FRM,
USING,
UTC_DATE,
UTC_TIME,
UTC_TIMESTAMP,
VALIDATION,
VALUE,
VALUES,
VARBINARY,
VARCHAR,
VARCHARACTER,
VARIABLES,
VARYING,
VCPU,
VIEW,
VIRTUAL,
VISIBLE,
WAIT,
WARNINGS,
WEEK,
WEIGHT_STRING,
WHEN,
WHERE,
WHILE,
WINDOW,
WITH,
WITHOUT,
WORK,
WRAPPER,
WRITE,
X509,
XA,
XID,
XML,
XOR,
YEAR,
YEAR_MONTH,
ZEROFILL

我在为 vim 制作 mysql 关键字完成时发现了它。

于 2020-03-27T11:44:18.130 回答
0

我编写了这个脚本来测试每个保留字,因为我发现它比理解文档中的所有特性更容易:

#!/usr/bin/env bash

if ! $MYSQL_CMD -e 'select 1' > /dev/null; then
    echo 'Failed to run query.'
    exit 1;
fi

$MYSQL_CMD --skip-column-names -e 'select name from mysql.help_keyword' | grep -v '[^A-Z_0-9]' | while read -r k; do
    $MYSQL_CMD -e "select 1 as $k" > /dev/null 2>&1 || echo "$k"
done

使用示例:

MYSQL_CMD='mysql -uroot -proot -h127.0.0.1' ./mysql_keywords.sh

以下是 MySQL 5.7.34 上的保留字列表:

ADD
ALL
ALTER
ANALYZE
AND
AS
ASC
BEFORE
BETWEEN
BINARY
BOTH
BY
CALL
CASCADE
CASE
CHANGE
CHAR
CHARACTER
CHECK
COLLATE
COLUMN
CONDITION
CONSTRAINT
CONTINUE
CONVERT
CREATE
CROSS
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
CURSOR
DATABASE
DATABASES
DAY_HOUR
DAY_MINUTE
DAY_SECOND
DEC
DECIMAL
DECLARE
DEFAULT
DELAYED
DELETE
DESC
DESCRIBE
DISTINCT
DISTINCTROW
DIV
DROP
DUAL
ELSE
ELSEIF
ENCLOSED
ESCAPED
EXISTS
EXIT
EXPLAIN
FALSE
FETCH
FLOAT4
FLOAT8
FOR
FORCE
FOREIGN
FROM
FULLTEXT
GET
GRANT
GROUP
HAVING
HIGH_PRIORITY
HOUR_MINUTE
HOUR_SECOND
IF
IGNORE
IN
INDEX
INFILE
INNER
INSERT
INT1
INT2
INT3
INT4
INT8
INTEGER
INTERVAL
INTO
IS
ITERATE
JOIN
KEY
KEYS
KILL
LEADING
LEAVE
LEFT
LIKE
LIMIT
LINES
LOAD
LOCALTIME
LOCALTIMESTAMP
LOCK
LONG
LOOP
LOW_PRIORITY
MASTER_BIND
MASTER_SSL_VERIFY_SERVER_CERT
MATCH
MIDDLEINT
MINUTE_SECOND
MOD
NATURAL
NOT
NO_WRITE_TO_BINLOG
NULL
NUMERIC
ON
OPTIMIZE
OPTIMIZER_COSTS
OPTION
OPTIONALLY
OR
ORDER
OUTER
OUTFILE
PARTITION
PRECISION
PRIMARY
PROCEDURE
PURGE
READ
REAL
REFERENCES
REGEXP
RELEASE
RENAME
REPEAT
REPLACE
REQUIRE
RESIGNAL
RESTRICT
RETURN
REVOKE
RIGHT
RLIKE
SCHEMA
SCHEMAS
SELECT
SEPARATOR
SET
SHOW
SIGNAL
SPATIAL
SQLSTATE
SQL_BIG_RESULT
SQL_CALC_FOUND_ROWS
SQL_SMALL_RESULT
SSL
STARTING
STORED
STRAIGHT_JOIN
TABLE
TERMINATED
THEN
TO
TRAILING
TRIGGER
TRUE
UNDO
UNION
UNIQUE
UNLOCK
UNSIGNED
UPDATE
USAGE
USE
USING
UTC_DATE
UTC_TIME
UTC_TIMESTAMP
VALUES
VARCHARACTER
VARYING
VIRTUAL
WHEN
WHERE
WHILE
WITH
WRITE
XOR
YEAR_MONTH
ZEROFILL

对于 MySQL 8.0.24:

ADD
ALL
ALTER
ANALYZE
AND
AS
ASC
BEFORE
BETWEEN
BINARY
BOTH
BY
CALL
CASCADE
CASE
CHANGE
CHAR
CHARACTER
CHECK
COLLATE
COLUMN
CONDITION
CONSTRAINT
CONTINUE
CONVERT
CREATE
CROSS
CUME_DIST
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
CURSOR
DATABASE
DATABASES
DAY_HOUR
DAY_MINUTE
DAY_SECOND
DEC
DECIMAL
DECLARE
DEFAULT
DELAYED
DELETE
DENSE_RANK
DESC
DESCRIBE
DISTINCT
DISTINCTROW
DIV
DROP
DUAL
ELSE
ELSEIF
ENCLOSED
ESCAPED
EXCEPT
EXISTS
EXIT
EXPLAIN
FALSE
FETCH
FIRST_VALUE
FLOAT4
FLOAT8
FOR
FORCE
FOREIGN
FROM
FULLTEXT
FUNCTION
GET
GRANT
GROUP
GROUPING
HAVING
HIGH_PRIORITY
HOUR_MINUTE
HOUR_SECOND
IF
IGNORE
IN
INDEX
INFILE
INNER
INSERT
INT1
INT2
INT3
INT4
INT8
INTEGER
INTERVAL
INTO
IS
ITERATE
JOIN
JSON_TABLE
KEY
KEYS
KILL
LAG
LAST_VALUE
LEAD
LEADING
LEAVE
LEFT
LIKE
LIMIT
LINES
LOAD
LOCALTIME
LOCALTIMESTAMP
LOCK
LONG
LOOP
LOW_PRIORITY
MASTER_BIND
MASTER_SSL_VERIFY_SERVER_CERT
MATCH
MIDDLEINT
MINUTE_SECOND
MOD
NATURAL
NOT
NO_WRITE_TO_BINLOG
NTH_VALUE
NTILE
NULL
NUMERIC
OF
ON
OPTIMIZE
OPTIMIZER_COSTS
OPTION
OPTIONALLY
OR
ORDER
OUTER
OUTFILE
PARTITION
PERCENT_RANK
PRECISION
PRIMARY
PROCEDURE
PURGE
RANK
READ
REAL
REFERENCES
REGEXP
RELEASE
RENAME
REPEAT
REPLACE
REQUIRE
RESIGNAL
RESTRICT
RETURN
REVOKE
RIGHT
RLIKE
ROW
ROWS
ROW_NUMBER
SCHEMA
SCHEMAS
SELECT
SEPARATOR
SET
SHOW
SIGNAL
SPATIAL
SQLSTATE
SQL_BIG_RESULT
SQL_CALC_FOUND_ROWS
SQL_SMALL_RESULT
SSL
STARTING
STORED
STRAIGHT_JOIN
SYSTEM
TABLE
TERMINATED
THEN
TO
TRAILING
TRIGGER
TRUE
UNDO
UNION
UNIQUE
UNLOCK
UNSIGNED
UPDATE
USAGE
USE
USING
UTC_DATE
UTC_TIME
UTC_TIMESTAMP
VALUES
VARCHARACTER
VARYING
VIRTUAL
WHEN
WHERE
WHILE
WITH
WRITE
XOR
YEAR_MONTH
ZEROFILL

并且仅在 5.7.34 和 8.0.24 之间添加了保留字:

CUME_DIST
DENSE_RANK
EXCEPT
FIRST_VALUE
FUNCTION
GROUPING
JSON_TABLE
LAG
LAST_VALUE
LEAD
NTH_VALUE
NTILE
OF
PERCENT_RANK
RANK
ROW
ROW_NUMBER
ROWS
SYSTEM
于 2021-09-13T15:16:16.473 回答