我正在尝试但未能使用Eclipse创建表。 我该怎么做才能解决这个问题?
PreparedStatement create=conn.prepareStatement("CREATE TABLE IF NOT EXISTS
stud(id int unsigned not null auto_increment,
firstname varchar(25),
lastname varchar(25)");
错误:
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在#IF; [IF NOT EXISTS] stud附近使用正确的语法(id int unsigned not null auto_increment,firstname varchar(' at line 1
答案 0 :(得分:3)
问题是您对表创建的查询在末尾缺少一个括号,这使查询在语法上无效。查询应为:
PreparedStatement create=conn.prepareStatement("CREATE TABLE IF NOT EXISTS
stud(id int unsigned not null auto_increment,
firstname varchar(25),
lastname varchar(25))");
在我看来,代码格式化,所以括号/大括号和其他一般语法可以排队有助于避免这些情况,因为你可以看到打开和关闭排队:
PreparedStatement create=conn.prepareStatement("CREATE TABLE IF NOT EXISTS
stud(
id int unsigned not null auto_increment,
firstname varchar(25),
lastname varchar(25)
)");
但是,某些编码指南可能不允许您这样做。
答案 1 :(得分:2)
尽管每个人都在挑选缺失的括号,但是错误消息与缺少的括号无关,并且答案和注释都会忽略错误消息中的内容。
我相信OP没有复制正在执行的确切代码,因为错误信息显示:
...查看与您的MySQL服务器版本对应的手册,以便在“ [IF NOT EXISTS]
附近使用正确的语法
请注意,在错误消息中,if not exists子句用方括号括起来,如create table上的mysql手册所示。在手册中,它表明该子句是可选的,但在现实生活中的代码中,方括号不能存在。
在实际代码中没有方括号,这就是为什么我相信OP没有将原始代码复制到问题中。我的回答是:删除if not exists
子句周围的方括号。
答案 2 :(得分:1)
据我所知,它只是缺少一个关闭的副词。
PreparedStatement create=conn.prepareStatement("CREATE TABLE IF NOT EXISTS
stud(id int unsigned not null auto_increment,
firstname varchar(25),
lastname varchar(25))");