【发布时间】:2012-05-02 18:09:59
【问题描述】:
我正在尝试向数据库表中添加一列,并且
PreparedStatement ps = con.prepareStatement(query);
ps.execute();
ps.close();
查询类似于(有效的 SQL)
ALTER TABLE mytable ADD COLUMN mycolumn datatypeinfo
无论如何,它执行得很好并且列被创建了。但是执行语句返回 false。我尝试使用 executeUpdate 并返回 0 行。
请注意,这整个事情都在 con.setAutoCommit 设置为 false 的事务中。所以我不确定这是否是问题所在。问题是我必须先创建列,然后才能继续进行其他更新查询。所以它必须在事务中运行。
【问题讨论】:
-
当您不期望 ResultSet 时,为什么不使用 executeUpdate() 方法? docs.oracle.com/javase/6/docs/api/java/sql/…
-
我试过了,但它没有返回任何东西。正如它所说,它为不返回任何内容的 SQL 语句返回 0,例如 DDL 语句。我想我将只依赖是否抛出异常。
标签: java sql postgresql jdbc ddl