繁体   English   中英

PostgreSQL的Java JDBC:使用添加列查询执行的PreparedStatement返回false

[英]Java JDBC with PostgreSQL: PreparedStatement Execute with Add Column Query returns false

我正在尝试向数据库表中添加一列,

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

查询类似于(有效的SQL)

ALTER TABLE mytable ADD COLUMN mycolumn datatypeinfo

无论如何,它执行得很好,并且创建了列。 但是execute语句返回false。 我尝试了executeUpdate,它返回0行。

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

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

由于ALTER TABLE不返回结果,因此execute()正确返回false

引用Javadocs

true true; true false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM