mysql - 代码是正确的,但我仍然收到语法错误消息
问题描述
我正在尝试在 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' 附近使用正确的语法
解决方案
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;
推荐阅读
- python - 我的代码有效,但是如何让这段代码在确定的时间内运行?
- apache-kafka - 更改 Kafka Streams 上的键但推送到新主题时是否会发生数据重新分区?
- oauth - 如何使用 oAuth for Daemon 与 Exchange Web 服务交互,但仅限于一个邮箱
- bash - 在 if 语句 bash 中调用函数
- kubernetes - 错误:选择器与模板标签不匹配
- javascript - 如何在执行之前捕获 Echarts Toolbox 事件,如 saveAsImage
- javascript - 绑定到 html 的角度推送和拼接数组元素
- python - Python3 cx-Oracle Oracle 客户端库无法加载:Linux 上的“libclntsh.so”
- c# - 如何在剃须刀的表格中添加一些页面
- python - Tensorflow - 迭代两个张量