问题描述
我正在尝试在MysqL中创建一个名为Staff的表,但是我收到错误1064(42000)消息。
我已经逐行和逐个字符地检查了,但是我和我的导师都无法识别任何语法错误。
如果我删除了Salary和Rank属性,我不会出错,但是必须将它们包括在表中。
我已经阅读了有关错误1064的其他几个问题,但它们对我没有帮助。我对MysqL也很陌生。谢谢您的时间。
代码如下:
drop table if exists Staff;
create table Staff
(Employee_ID varchar(4),Employee_Name varchar(10),Salary numeric(7,0),Rank varchar(8),primary key (Employee_ID)
) ENGINE = INNODB;
确切的错误消息是: 错误1064(42000):您的sql语法有错误;检查与您的MysqL服务器版本相对应的手册,以在'Rank varchar(8)附近使用正确的语法 主键(Employee_ID) )第5行的ENGINE = INNODB'
解决方法
rank是保留字(从MySQL 8.0开始),对其使用反引号或重命名。
drop table if exists Staff;
create table Staff
(Employee_ID varchar(4),Employee_Name varchar(10),Salary numeric(7,0),`Rank` varchar(8),primary key (Employee_ID)
) ENGINE = INNODB;
,
排名是保留字。 重命名或引用它。