私はデータベースのテーブルに列を追加しようとしているとJavaのJDBC:PreparedStatementのは、追加の列のクエリを実行するには、偽
PreparedStatement ps = con.prepareStatement(query);
ps.execute();
ps.close();
クエリは(有効なSQL)
ALTER TABLE mytable ADD COLUMN mycolumn datatypeinfo
のようなものです返しますとにかく、それは正常に実行され、列が作成されます。しかし、execute文はfalseを返します。私はexecuteUpdateで試して、0行を返します。
このすべてのことは、con.setAutoCommitがfalseに設定されたトランザクション内にあることに注意してください。だから私はそれが問題かどうか分からない。問題は、他の更新クエリを先に進める前に列を作成する必要があることです。したがって、トランザクションで実行する必要があります。
あなたがResultSetを期待していないのに、なぜのexecuteUpdate()メソッドを使用しないではありませんか? http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html#executeUpdate%28%29 – kgrittn
私はそれを試みましたが、何も返されません。つまり、DDL文など何も返さないSQL文では0を返します。私は、例外がスローされたかどうかだけに頼ると思います。 – Krishna