SQL版本:MYSQL 8.0.11;Mac OS
错误语句:
CREATE TABLE grade(low TINYINT,upp TINYINT,rank CHAR(1));
错误提示:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘rank CHAR(1))’ at line 1
错误原因:
SQL syntax即SQL的语法问题,检查了英文字符、数据类型、建表格式都没有找到问题,而在错误提示中告诉我们:near后的“”中即错误所在地。因此我们就关注near的“”内的内容。在网上搜了一圈下来也没遇到跟我有相似问题的人,心里莫名对rank这个命名有点疑惑,在想:数据库能否准确分辨出rank列名和rank函数?所以我就尝试改了列名,之后的语句如下:
CREATE TABLE grade_1(low TINYINT,upp TINYINT,rank_1 CHAR(1));
结果显示
Query OK, 0 rows affected (0.04 sec)
所以,如果之后在检查无果的情况下,但还是出现类似问题可以看看是否跟数据库中的已有函数名发生了冲突。不同版本的SQL也不太一样。