關鍵字是在 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 的手冊中找到這些保留字。清單中的大多數保留字(例如,GROUP
)都被標準 SQL 禁止作為欄位或表格名稱。一些保留字是因為 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)ACCOUNT
ACTION
ACTIVE
ADD
(R)ADMIN
AFTER
AGAINST
AGGREGATE
ALGORITHM
ALL
(R)ALTER
(R)ALWAYS
ANALYZE
(R)AND
(R)ANY
ARRAY
AS
(R)ASC
(R)ASCII
ASENSITIVE
(R)AT
ATTRIBUTE
AUTHENTICATION
AUTO
AUTOEXTEND_SIZE
AUTO_INCREMENT
AVG
AVG_ROW_LENGTH
BACKUP
BEFORE
(R)BEGIN
BERNOULLI
BETWEEN
(R)BIGINT
(R)BINARY
(R)BINLOG
BIT
BLOB
(R)BLOCK
BOOL
BOOLEAN
BOTH
(R)BTREE
BUCKETS
BULK
BY
(R)BYTE
CACHE
CALL
(R)CASCADE
(R)CASCADED
CASE
(R)CATALOG_NAME
CHAIN
CHALLENGE_RESPONSE
CHANGE
(R)CHANGED
CHANNEL
CHAR
(R)CHARACTER
(R)CHARSET
CHECK
(R)CHECKSUM
CIPHER
CLASS_ORIGIN
CLIENT
CLONE
CLOSE
COALESCE
CODE
COLLATE
(R)COLLATION
COLUMN
(R)COLUMNS
COLUMN_FORMAT
COLUMN_NAME
COMMENT
COMMIT
COMMITTED
COMPACT
COMPLETION
COMPONENT
COMPRESSED
COMPRESSION
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
(R)CUME_DIST
(R)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
DEFINITION
DELAYED
(R)DELAY_KEY_WRITE
DELETE
(R)DENSE_RANK
(R)DESC
(R)DESCRIBE
(R)DESCRIPTION
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)EMPTY
(R)ENABLE
ENCLOSED
(R)ENCRYPTION
END
ENDS
ENFORCED
ENGINE
ENGINES
ENGINE_ATTRIBUTE
ENUM
ERROR
ERRORS
ESCAPE
ESCAPED
(R)EVENT
EVENTS
每個
EXCEPT
(R)交換
排除
執行
EXISTS
(R)EXIT
(R)擴展
到期
EXPLAIN
(R)匯出
擴充的
範圍大小
因素
登入失敗嘗試次數
FALSE
(R)快速
錯誤
FETCH
(R)欄位
檔案
檔案區塊大小
篩選器
完成
第一
FIRST_VALUE
(R)固定的
FLOAT
(R)FLOAT4
(R)FLOAT8
(R)刷新
以下
跟隨
FOR
(R)FORCE
(R)FOREIGN
(R)格式
已找到
FROM
(R)完整
FULLTEXT
(R)FUNCTION
(R)
一般
產生
GENERATED
(R)幾何集合
幾何
幾何集合
GET
(R)取得格式
取得來源公開金鑰
全域
GRANT
(R)授權
GROUP
(R)GROUPING
(R)GROUPS
(R)群組複製
GTIDS
僅限 GTID
處理器
雜湊
HAVING
(R)說明
HIGH_PRIORITY
(R)直方圖
歷史記錄
主機
主機
小時
HOUR_MICROSECOND
(R)HOUR_MINUTE
(R)HOUR_SECOND
(R)
已識別
IF
(R)IGNORE
(R)忽略伺服器 ID
匯入
IN
(R)非活動
INDEX
(R)索引
INFILE
(R)初始
初始大小
啟動
INNER
(R)INOUT
(R)INSENSITIVE
(R)INSERT
(R)插入方法
安裝
執行個體
INT
(R)INT1
(R)INT2
(R)INT3
(R)INT4
(R)INT8
(R)INTEGER
(R)INTERSECT
(R)INTERVAL
(R)INTO
(R)不可見
調用者
IO
IO_AFTER_GTIDS
(R)IO_BEFORE_GTIDS
(R)IO 執行緒
IPC
IS
(R)隔離
發行者
ITERATE
(R)
JOIN
(R)JSON
JSON_TABLE
(R)JSON 值
KEY
(R)金鑰環
KEYS
(R)金鑰區塊大小
KILL
(R)
LAG
(R)語言
最後
LAST_VALUE
(R)LATERAL
(R)LEAD
(R)LEADING
(R)LEAVE
(R)離開
LEFT
(R)較少
等級
LIKE
(R)LIMIT
(R)LINEAR
(R)LINES
(R)線字串
清單
LOAD
(R)本機
LOCALTIME
(R)LOCALTIMESTAMP
(R)LOCK
(R)已鎖定
鎖定
記錄
記錄檔
記錄
LONG
(R)LONGBLOB
(R)LONGTEXT
(R)LOOP
(R)LOW_PRIORITY
(R)
MANUAL
(R)主機
MATCH
(R)MAXVALUE
(R)每小時最大連線數
每小時最大查詢數
最大列數
最大大小
每小時最大更新次數
最大使用者連線數
中型
MEDIUMBLOB
(R)MEDIUMINT
(R)MEDIUMTEXT
(R)成員
記憶體
合併
訊息文字
微秒
MIDDLEINT
(R)遷移
分鐘
MINUTE_MICROSECOND
(R)MINUTE_SECOND
(R)最小列數
MOD
(R)模式
MODIFIES
(R)修改
月
多線字串
多點
多邊形
互斥
MYSQL_ERRNO
名稱
名稱
國家
NATURAL
(R)NCHAR
NDB
NDB叢集
巢狀
網路命名空間
從不
新
下一個
否
節點群組
無
NOT
(R)立即
不等待
NO_WRITE_TO_BINLOG
(R)NTH_VALUE
(R)NTILE
(R)NULL
(R)NULL
數字
NUMERIC
(R)NVARCHAR
OF
(R)關閉
偏移量
OJ
舊
ON
(R)一
僅
開啟
OPTIMIZE
(R)OPTIMIZER_COSTS
(R)OPTION
(R)選用
OPTIONALLY
(R)選項
OR
(R)ORDER
(R)序數
組織
其他
OUT
(R)OUTER
(R)OUTFILE
(R)OVER
(R)擁有者
封裝金鑰
頁面
PARALLEL
(R)剖析器
剖析樹狀結構
部分
PARTITION
(R)分割
分割區
密碼
密碼鎖定時間
路徑
PERCENT_RANK
(R)持續
僅限持續
階段
外掛程式
外掛程式
外掛程式目錄
點
多邊形
連接埠
優先
在先
PRECISION
(R)準備
保留
上一個
PRIMARY
(R)權限
權限檢查使用者
PROCEDURE
(R)處理
處理程序清單
設定檔
設定檔
Proxy
PURGE
(R)
QUALIFY
(R)季
查詢
快速
隨機
RANGE
(R)RANK
(R)READ
(R)READS
(R)唯讀
READ_WRITE
(R)REAL
(R)重建
復原
RECURSIVE
(R)重做緩衝區大小
多餘
參考
REFERENCES
(R)REGEXP
(R)註冊
中繼
中繼記錄
中繼記錄檔
中繼記錄位置
中繼執行緒
RELEASE
(R)重新載入
移除
RENAME
(R)重新整理
修復
REPEAT
(R)可重複
REPLACE
(R)複本
複本
複製執行資料庫
複製執行資料表
複製忽略資料庫
複製忽略資料表
複製重新寫入資料庫
複製萬用字元執行資料表
複製萬用字元忽略資料表
複製
REQUIRE
(R)需要列格式
重設
RESIGNAL
(R)資源
尊重
重新啟動
還原
RESTRICT
(R)繼續
保留
RETURN
(R)傳回的 SQLSTATE
正在傳回
傳回
重複使用
反向
REVOKE
(R)RIGHT
(R)RLIKE
(R)角色
復原
彙總
旋轉
常式
ROW
(R)ROWS
(R)列數
列格式
ROW_NUMBER
(R)RTREE
S3
儲存點
排程
SCHEMA
(R)SCHEMAS
(R)結構描述名稱
秒
次要
次要引擎
次要引擎屬性
次要載入
次要卸載
SECOND_MICROSECOND
(R)安全性
SELECT
(R)SENSITIVE
(R)SEPARATOR
(R)序列
可序列化
伺服器
工作階段
SET
(R)分享
SHOW
(R)關閉
SIGNAL
(R)已簽署
簡單
跳過
從屬
慢速
SMALLINT
(R)快照
套接字
某些
共享函式庫名稱
聲音
來源
來源_自動_定位
來源_綁定
來源_壓縮_演算法
來源_連線_重試
來源_延遲
來源_心跳_週期
來源_主機
來源_日誌_檔案
來源_日誌_位置
來源_密碼
來源_連接埠
來源_公開金鑰_路徑
來源_重試_次數
來源_SSL
來源_SSL_CA
來源_SSL_CAPATH
來源_SSL_憑證
來源_SSL_加密
來源_SSL_CRL
來源_SSL_CRLPATH
來源_SSL_金鑰
來源_SSL_驗證_伺服器_憑證
來源_TLS_加密套件
來源_TLS_版本
來源_使用者
來源_ZSTD_壓縮_層級
SPATIAL
(R)SPECIFIC
(R)SQL
(R)SQLEXCEPTION
(R)SQLSTATE
(R)SQLWARNING
(R)SQL_在_GTIDS_之後
SQL_在_MTS_間隙_之後
SQL_在_GTIDS_之前
SQL_BIG_RESULT
(R)SQL_緩衝_結果
SQL_CALC_FOUND_ROWS
(R)SQL_不_快取
SQL_SMALL_RESULT
(R)SQL_執行緒
SQL_TSI_天
SQL_TSI_小時
SQL_TSI_分鐘
SQL_TSI_月
SQL_TSI_季
SQL_TSI_秒
SQL_TSI_週
SQL_TSI_年
SRID
SSL
(R)堆疊
開始
STARTING
(R)開始於
統計_自動_重新計算
統計_持續
統計_樣本_頁面
狀態
停止
儲存
STORED
(R)STRAIGHT_JOIN
(R)串流
字串
子類別_來源
主旨
子分割區
子分割區
超級
暫停
交換
開關
SYSTEM
(R)
TABLE
(R)表格
TABLESAMPLE
(R)表空間
表格_檢查和
表格_名稱
臨時
臨時表
TERMINATED
(R)文字
大於
THEN
(R)執行緒_優先順序
並列
時間
時間戳記
時間戳記相加
時間戳記相減
TINYBLOB
(R)TINYINT
(R)TINYTEXT
(R)TLS
TO
(R)TRAILING
(R)交易
TRIGGER
(R)觸發器
TRUE
(R)截斷
類型
類型
無界限
未提交
未定義
UNDO
(R)復原檔案
復原_緩衝區_大小
萬國碼
解除安裝
UNION
(R)UNIQUE
(R)未知
UNLOCK
(R)取消註冊
UNSIGNED
(R)直到
UPDATE
(R)升級
網址
USAGE
(R)USE
(R)使用者
使用者_資源
使用_FRM
USING
(R)UTC_DATE
(R)UTC_TIME
(R)UTC_TIMESTAMP
(R)
驗證
值
VALUES
(R)VARBINARY
(R)VARCHAR
(R)VARCHARACTER
(R)變數
VARYING
(R)虛擬CPU
視圖
VIRTUAL
(R)可見
等待
警告
週
權重_字串
WHEN
(R)WHERE
(R)WHILE
(R)WINDOW
(R)WITH
(R)無
工作
封裝器
WRITE
(R)
X509
XA
XID
XML
XOR
(R)
年
YEAR_MONTH
(R)
ZEROFILL
(R)時區
以下清單顯示與 MySQL 8.0 相比,在 MySQL 8.4 中新增的關鍵字和保留字。保留關鍵字標示為 (R)。
A | B | G | L | M | P | Q | S | T
AUTO
BERNOULLI
GTIDS
記錄
MANUAL
(R)
PARALLEL
(R)剖析樹狀結構
QUALIFY
(R)
S3
TABLESAMPLE
(R)
以下清單顯示與 MySQL 8.0 相比,在 MySQL 8.4 中移除的關鍵字和保留字。保留關鍵字標示為 (R)。
取得_主機_公開金鑰
主機_自動_定位
主機_綁定
(R)主機_壓縮_演算法
主機_連線_重試
主機_延遲
主機_心跳_週期
主機_主機
主機_日誌_檔案
主機_日誌_位置
主機_密碼
主機_連接埠
主機_公開金鑰_路徑
主機_重試_次數
主機_SSL
主機_SSL_CA
主機_SSL_CAPATH
主機_SSL_憑證
主機_SSL_加密
主機_SSL_CRL
主機_SSL_CRLPATH
主機_SSL_金鑰
主機_SSL_驗證_伺服器_憑證
(R)主機_TLS_加密套件
主機_TLS_版本
主機_使用者
主機_ZSTD_壓縮_層級