带有PostgreSQL的Java JDBC:PreparedStatement使用Add Column Query执行返回false

时间:2012-05-02 18:09:59

标签: java sql postgresql jdbc ddl

我正在尝试将列添加到数据库表中并

PreparedStatement  ps = con.prepareStatement(query);  
ps.execute();
ps.close();

查询类似于(有效的SQL)

ALTER TABLE mytable ADD COLUMN mycolumn datatypeinfo

无论如何,它执行正常并且创建了列。但execute语句返回false。我尝试使用executeUpdate并返回0行。

请注意,整个事情都在con.setAutoCommit设置为false的事务中。所以我不确定这是不是问题。问题是我必须先创建列才能继续进行其他更新查询。所以它必须在交易中运行。

1 个答案:

答案 0 :(得分:5)

execute()的返回值并不表示它是否成功,但是如果运行的查询返回了结果。

由于ALTER TABLE未返回结果,execute()正确地返回false

来自Javadocs

的引用
  

返回:如果第一个结果是ResultSet对象,则返回true ; false 如果第一个结果是更新计数或没有结果