[SQL] SQL JDBC getgeneratedkeys 반환 열 "ID"을 (를) 찾을 수 없습니다, 열 유형의 알 수없는
SQLSQL JDBC getgeneratedkeys 반환 열 "ID"을 (를) 찾을 수 없습니다, 열 유형의 알 수없는
나는 삽입 쿼리를 사용하여 테이블에서 가장 최근에 업데이트 된 값을 검색합니다.
이러한 내 SQL 테이블에서 데이터 유형입니다.
데이터 형식:
int(11) // primary key auto increment, not being assigned by sqlQuery
varchar(30)
timestamp // has a default value. but i am explicit assigning it using CURRENT_TIMESTAMP
varchar(300)
varchar(300)
varchar(300)
int(11)
varchar(300)
자바 코드
statement.executeUpdate(sqlQuery, Statement.RETURN_GENERATED_KEYS);
ResultSet rs = statement.getGeneratedKeys();
System.out.println("here: " + rs.getMetaData().getColumnCount());
System.out.println("here1: " + rs.getMetaData().getColumnName(1));
// none of the following 3 works
System.out.println("id: " + rs.getInt(1));
System.out.println("id: " + rs.getInt("GENERATED_KEY"));
System.out.println("id: " + rs.getInt("id"));
for a bit of background see [this][1]
`rs.getMetaData().getColumnTypeName(1)` tells me column type `UNKNOWN`
스택 추적
SEVERE: null
java.sql.SQLException
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:815)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5528)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5448)
[1]: http://stackoverflow.com/questions/2853066/sql-java-get-value-assigned-to-auto-increment-primary-key
해결법
-
==============================
1.당신은 () 호출 rs.next 필요 :
당신은 () 호출 rs.next 필요 :
int autoIncKeyFromApi = -1; rs = stmt.getGeneratedKeys(); if (rs.next()) { autoIncKeyFromApi = rs.getInt(1); } else { // do what you have to do } System.out.println(autoIncKeyFromApi);
-
==============================
2.아마 SQLQuery 인이 새로운 레코드를 생성하지 않기 때문입니다! 이 경우, 빈의 ResultSet을 반환합니다 ) (getGeneratedKeys의 사양 봐
아마 SQLQuery 인이 새로운 레코드를 생성하지 않기 때문입니다! 이 경우, 빈의 ResultSet을 반환합니다 ) (getGeneratedKeys의 사양 봐
from https://stackoverflow.com/questions/2854774/sql-jdbc-getgeneratedkeys-returns-column-id-not-found-column-type-unknown by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] Microsoft.Jet.OLEDB.4.0는 문자 변환 (0) | 2020.07.08 |
---|---|
[SQL] SQL : 병합 날짜 범위 (0) | 2020.07.08 |
[SQL] SQL Server 2008의 쉼표로 분할 문자열 (0) | 2020.07.08 |
[SQL] 두 날짜 사이의 금요일의 수 (0) | 2020.07.08 |
[SQL] 합니까 오라클 롤 오류에 트랜잭션을? (0) | 2020.07.08 |