、Oracleのシーケンスを使用してjdbcの2つのテーブルにログIDを挿入しますか?私は次のようにtableAにログIDを挿入するためのOracleシーケンスを使用しています
String SQL_PREP_INSERT = "INSERT INTO tableA (LOG_ID,USER_ID,EXEC_TIME) VALUES"
+ " (logid_seq.nextval, ?, ?)";
次に、最近挿入された値、
String SQL_PREP_SEL = "SELECT max(LOG_ID) FROM tableA ";
stmt = con.prepareStatement(SQL_PREP_SEL);
stmt.execute();
ResultSet rs = stmt.getResultSet();
if (rs.next()) {
logid = rs.getInt(1);
}
を取得し、TableBの中にそれを挿入する
String SQL_PREP_INSERT_DETAIL = "INSERT INTO tableB (LOG_ID, RESPONSE_CODE, RESPONSE_MSG) VALUES"
+ " (?, ?)";
stmt = con.prepareStatement(SQL_PREP_INSERT_DETAIL);
stmt.setInt(1, logid);
stmt.setString(2, respCode);
stmt.setString(3, respMsg);
stmt.execute();
OracleではなくJavaでシーケンスを生成し、tableAから選択してタブに挿入するのではなく、両方のテーブルに一度に挿入する方法はありますかleB?
+1 'logid_seq.currval'が行く方法です。 –