Java 如何将IF NOT EXISTS语句用于ALTER TABLE语句?

Java 如何将IF NOT EXISTS语句用于ALTER TABLE语句?,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我正在开发一个用Java编写的应用程序。现在我必须在数据库中创建一个新列。但柱应仅在不存在时创建 所以我想使用IF不存在和altertable来创建我的新列 以下是我尝试过的: //Some import statements and previous, not for the question relevant code //relevant code: Statement alter = conn.createStatement();{ String alterStr="alte

我正在开发一个用Java编写的应用程序。现在我必须在数据库中创建一个新列。但柱应仅在不存在时创建

所以我想使用IF不存在和altertable来创建我的新列

以下是我尝试过的:

//Some import statements and previous, not for the question relevant code

//relevant code:

 Statement alter = conn.createStatement();{
   String alterStr="alter table test_cm_documents ADD if not exists test_id int";
   alter.executeQuery(alterStr);
   System.out.println("Column has been generated.")
 }
实际上,我只是希望它打印出“Column has generated”(列已生成)。但它给了我以下错误消息:

错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解第1行“if not exists test_id”附近要使用的正确语法

我对这个话题很陌生,所以请原谅我的错误。(:

您可以使用:

select * from information_schema.columns
where
table_schame='<enter_your_database_name_here_remove_brackets>' and
table_name='test_cm_documents' and
column_name='test_id'

此外,您还需要向java应用程序中指定的用户授予访问权(用于获取信息\u模式)。(如果用户是“ROOT”,则忽略此项).

在MySQL中,如果不使用存储过程或动态SQL,则无法执行此操作,因此它在JDBC中无法工作。您可以编写一个存储过程,然后从Java调用它。@TimBiegeleisen您的意思是在一个单独的文本文件中?
alter table test_cm_documents add column test_id int;