INSERT문에 대해 자동 생성 키 검색
IBM® Data Server Driver for JDBC and SQLJ에서 JDBC 메소드를 사용하여 INSERT문을 실행할 때 자동으로 생성되는 키를 검색할 수 있습니다.
프로시저
INSERT문으로 생성되는 자동으로 생성된 키를 검색하려면 다음 단계를 수행해야 합니다.
예
다음 코드는 ID 컬럼이 있는 테이블을 작성하고, 행을 테이블에
삽입하며 ID 컬럼에 대한 자동으로 생성된 키 값을 검색합니다. 선택된
명령문의 오른쪽에 있는 숫자는 이전에 설명한 단계에 해당합니다.
import java.sql.*;
import java.math.*;
import com.ibm.db2.jcc.*;
Connection con;
Statement stmt;
ResultSet rs;
java.math.BigDecimal iDColVar;
…
stmt = con.createStatement(); // Create a Statement object
stmt.executeUpdate(
"CREATE TABLE EMP_PHONE (EMPNO CHAR(6), PHONENO CHAR(4), " +
"IDENTCOL INTEGER GENERATED ALWAYS AS IDENTITY)");
// Create table with identity column
stmt.executeUpdate("INSERT INTO EMP_PHONE (EMPNO, PHONENO) " + 1
"VALUES ('000010', '5555')", // Insert a row
Statement.RETURN_GENERATED_KEYS); // Indicate you want automatically
// generated keys
rs = stmt.getGeneratedKeys(); // Retrieve the automatically 2
// generated key value in a ResultSet.
// Only one row is returned.
// Create ResultSet for query
while (rs.next()) {
java.math.BigDecimal idColVar = rs.getBigDecimal(1);
// Get automatically generated key
// value
System.out.println("automatically generated key value = " + idColVar);
}
rs.close(); // Close ResultSet
stmt.close(); // Close Statement
다음 코드는 ID 컬럼이
있는 테이블을 작성하고, 다중 행 INSERT문을 사용하여 두 행을 테이블에 삽입하며,
ID 컬럼에 대한 자동으로 생성된 키 값을 검색합니다. 선택된 명령문의 오른쪽에 있는 숫자는 이전에 설명한 단계에 해당합니다.
import java.sql.*;
import java.math.*;
import com.ibm.db2.jcc.*;
Connection con;
Statement stmt;
ResultSet rs;
…
stmt = con.createStatement();
stmt.executeUpdate(
"CREATE TABLE EMP_PHONE (EMPNO CHAR(6), PHONENO CHAR(4), " +
"IDENTCOL INTEGER GENERATED ALWAYS AS IDENTITY)");
// Create table with identity column
String[] id_col = {"IDENTCOL"};
int updateCount = 1
stmt.executeUpdate("INSERT INTO EMP_PHONE (EMPNO, PHONENO)" +
"VALUES ('000010', '5555'), ('000020', '5556')", id_col);
// Insert two rows
// Indicate you want automatically
// generated keys
rs = stmt.getGeneratedKeys(); // Retrieve the automatically 2
// generated key values in a ResultSet.
// Two rows are returned.
// Create ResultSet for query
while (rs.next()) {
int idColVar = rs.getInt(1);
// Get automatically generated key
// values
System.out.println("automatically generated key value = " + idColVar);
}
stmt.close();
con.close();