2011-05-05 112 views
1

我运行的SQL语句:ERROR 1064(42000):您有一个错误的SQL语法

create table group(groupID varchar(15) primary key, 
group_name varchar(30), 
name_of_member varchar(100), 
studentID varchar(15), 
foreign key(studentID) references student(studentID))engine=innodb; 

但它不工作。我发现了错误:

ERROR 1064 (42000) : You have an error in your SQL syntax.... near group(groupID varchar(15) primary key, group_name varchar(30),name_of_member va' at line 1

请帮我... :(

+0

正如@Nathan在他的回答中所说的,不要使用保留字作为表或列名,除非你想要很多烦恼。研究列表MySQL保留字,然后重新命名表/列以避免命名GROUP,SELECT,DELETE等等。 *请*在将来的问题中对代码进行格式化 - 突出显示代码并按下Ctrl + K,或者点击带有{}图片的按钮,或者将每行代码缩进4个空格。它使阅读和理解变得更容易。 – 2011-05-05 20:29:39

+0

@KenWhite我得到了同样的错误,但通过参考给定的答案来解决它。在MySql中是“命令”关键字,因为当我将表名从订单更改为订单时,查询执行时没有任何错误。据我所知“order by”是一个关键字 – 2017-05-12 04:36:19

+1

@ShantanuNandan:ORDER是一个关键字,因为它是ORDER BY的一部分;这足以混淆解析器。 – 2017-05-12 12:27:51

回答

4

group是一个关键字[思考select sum(column) from sometable group by name]你需要命名不同的表的东西

。有些DBMS会让你使用关键字作为表/列名,但它们需要被转义,即在MSSQL中,你会使用create table [group](...)

+0

mysql的转义字符是back tick:' – 2011-05-05 20:28:36

+0

thnk you ..我只是将其从组更改为PARTY ...它的工作.. thx :) – Ezwan 2011-05-05 20:29:59

相关问题