【概述】
最近 TiDB 从 4.0.8 升级到 5.1.1 发现有关键字语法不兼容的问题。
【现象】
4.0.8 版本:
MySQL [test]> create table test (call varchar(10));
Query OK, 0 rows affected (1.02 sec)
5.1.1 版本:
MySQL [test]> create table test (call varchar(10));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 1 column 23 near "call varchar(10))"
#需要在关键字的字段添加反引号才可以执行成功
MySQL [test]> create table test (`call` varchar(10));
Query OK, 0 rows affected (1.05 sec)
【问题】
官方文档查看 TiDB 关键字的相关内容( https://docs.pingcap.com/zh/tidb/v4.0/keywords#H )发现 4.0 版本和 5.1 版本都没有说明 call 这个字符是关键字。那为什么 4.0 版本可以成功执行的语句,在 5.1 版本却不行呢?