AUTO_INCREMENT 컬럼 MySQL LAST_INSERT_ID() 대체 방법
AUTO_INCREMENT 특성이 부여된 컬럼에 데이터 저장 후 자동 생성된 값을 얻어오는 MySQL함수인 LAST_INSERT_ID()는 CUBRID에서 지원하지 않는 함수이다.
이를 대체하기 위해서는 JDBC 프로그램에서만 가능한데 PreparedStatement.getGeneratedKeys() 메소드를 사용할 수 있다.
Create table test_t(a int auto_increment, b char(10), c char(10) );
//MySQL
Insert into test_t(b,c) value(‘b’,’c’);
Select LAST_INSERT_ID(); //자동 증가된 a 컬럼의 값을 가져온다.
è
//CUBRID
preparedStatement =
connection. prepareStatement(“insert into test_t(b,c) value(‘b’,’c’)”, Statement.RETURN_GENERATED_KEYS);
preparedStatement.execute();
resultSet = preparedStatement.getGeneratedKeys();
if (rs.next()) {
java.math.BigDecimal bdDocNo = rs.getBigDecimal(1);
docNo = bdDocNo.intValue();
}