关键字在 SQL 中有特殊的意义, 例如 SELECT
,UPDATE
,DELETE
,在作为表名跟函数名的时候,需要特殊对待,例如作为表名,保留字需要被反引号包住:
CREATE TABLE select (a INT);
ERROR 1105 (HY000): line 0 column 19 near " (a INT)" (total length 27)
CREATE TABLE `select` (a INT);
Query OK, 0 rows affected (0.09 sec)
BEGIN
和 END
是关键字, 但不是保留字,所以不需要反引号:
CREATE TABLE `select` (BEGIN int, END int);
Query OK, 0 rows affected (0.09 sec)
有一种特殊情况, 如果使用了限定符 .
,那么也不需要用反引号:
CREATE TABLE test.select (BEGIN int, END int);
Query OK, 0 rows affected (0.08 sec)
下表列出了在 TiDB 中的关键字跟保留字,保留字用 ® 来标识: