创建Order表时触发MySQL 1064语法错误的排查求助
问题原因与解决办法
- 错误核心:
Order是MySQL的保留关键字,直接将其用作表名会违反SQL语法规则,这就是触发[42000][1064]错误的原因。
解决方法一:用反引号包裹保留字
通过反引号`将Order括起来,让MySQL将其识别为普通表名而非关键字:
create table `Order` ( oid int(255), sid int(255), sku int(255), quantity int(255), foreign key (sid) references Suppliers(sid), foreign key (sku) references Parts(sku), primary key(sid,sku) );
解决方法二:修改表名(推荐)
避免使用数据库保留字作为表名,建议将表名改为Orders(复数形式),更符合常规命名习惯且不会触发语法问题:
create table Orders ( oid int(255), sid int(255), sku int(255), quantity int(255), foreign key (sid) references Suppliers(sid), foreign key (sku) references Parts(sku), primary key(sid,sku) );
内容的提问来源于stack exchange,提问作者Dominos-roadster
相关产品推荐
相关产品推荐

