JDBC程序执行ALTER TABLE语句报错,请求排查语法问题
问题分析与解决方案
你的SQL语法错误出在字符串拼接时缺少空格,导致生成的SQL语句中表名Contact_Info和add关键字连在了一起,变成了Contact_Infoadd,这不符合MySQL的语法规范。
拼接后错误的完整SQL语句如下:
alter table Contact_Infoadd column Phone varchar(30) not null after Last_Name,add column Email varchar(50) not null after Phone
显然Contact_Infoadd是无效的表名,这就是JDBC执行报错的核心原因——而命令行里你手动输入的语句自带空格,所以能正常执行。
修正方法很简单,在每个拼接的字符串开头补充空格,或者在前一个字符串的结尾添加空格即可:
String alter_query = "alter table Contact_Info " + "add column Phone varchar(30) not null after Last_Name, " + "add column Email varchar(50) not null after Phone";
修正后生成的正确SQL语句:
alter table Contact_Info add column Phone varchar(30) not null after Last_Name, add column Email varchar(50) not null after Phone
内容的提问来源于stack exchange,提问作者Sandip Nath
相关产品推荐
相关产品推荐

