首页 > 解决方案 > 代码是正确的,但我仍然收到语法错误消息

问题描述

我正在尝试在 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;

确切的错误信息是: ERROR 1064 (42000): You have an error in your SQL syntax; 检查与您的 MySQL 服务器版本相对应的手册,以在第 5 行的 'Rank varchar(8) primary key (Employee_ID) ) ENGINE = INNODB' 附近使用正确的语法

标签: mysqlcreate-table

解决方案


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;

推荐阅读