Oracle DB에 삽입된 행의 마지막 ID 가져오기
중복 가능성:
PLSQL JDBC:마지막 행 ID를 가져오는 방법?
테이블에서 ID를 가져오는 데 문제가 있습니다.AJPES_ 테이블이 두 개 있습니다.TR_LOG 테이블의 TR 및 TR_LOG 및 PK가 AJPES_에서 외부 키로 설정되었습니다.TR표.
TR_LOG 테이블에서는 어떤 파일 데이터를 가져왔는지만 기록하고 해당 PK를 메인 테이블에 연결하려고 합니다.SQL에서 저는 잘 지내고 있었습니다.getID.last(); int j = getID.getInt(TR_LOG_ID);하지만 이제 오라클에서는 더 이상 이것이 작동하지 않습니다.
다음은 나의 준비된 성명서입니다.
PreparedStatement insertData =
con.prepareStatement(
"INSERT INTO T_AJPES_TR(rn,sSpre,reg,eno,davcna,Ime,Priimek) VALUES (?,?,?,?,?,?,?)"
);
PreparedStatement select_file_log =
con.prepareStatement("SELECT * FROM T_AJPES_TR_LOG WHERE File_import = ?"
);
PreparedStatement getID = con.prepareStatement("SELECT * FROM T_AJPES_TR_LOG");
PreparedStatement insertFile =
con.prepareStatement(
"INSERT INTO T_AJPES_TR_LOG(Date_import,File_import) VALUES (?,?)"
);
mySQL에서 ID가 자동 증분으로 설정되었습니다.
TR_LOG에서 ID 값을 가져와서 AJPES_에 기록하려면 어떻게 해야 합니까?TR표?
시퀀스의 다음 값으로 기본 키 필드를 자동으로 설정하도록 트리거를 구성한 경우 INSERT 문을 다음과 같이 수정할 수 있습니다.
INSERT INTO table (field1, field2, field3)
VALUES (?, ?, ?)
RETURNING primary_key_field INTO ?
그런 다음 INSERT에 대한 매개 변수 값, 즉 기본 키의 끝에 있는 출력 매개 변수를 추가하고 쿼리를 실행합니다.
쿼리가 실행된 후 출력 매개 변수의 값을 가져옵니다.primary_key_field 값을 포함해야 합니다.
Oracle에서 사용된 자동 증분 값의 경우 시퀀스
다음 값은 SEQUENCE_NAME입니다.NEXTVAL, 마지막으로 사용한 SEQUENCE_NAME.커튼월
한 테이블 T1에 레코드를 삽입하려는 것을 제대로 이해했다면 삽입된 레코드의 PK를 가져와 다른 테이블 T2에서 FK로 사용합니다.이 경우 Oracle returning 절이 매우 유용하므로 다음과 같이 사용할 수 있습니다(Java에서 사용하기에 적합한지 잘 모르겠습니다만, 아이디어를 얻으셔야 합니다).
declare
fId int;
begin
insert into T1(id) values seq1.nextval returning id into fId
end;
삽입 후에 생성된 레코드 ID가fId변수.
준비 명세서 호출에서 자동 증분 열에 신호를 보낼 수 있습니다.
예:
PreparedStatement ps = con.prepareStatement(sql, pkColumns);
데이터베이스 행을 삽입한 후:
ResultSet keys = ps.getGeneratedKeys();
중요:이것은 시퀀스를 통해 자동 증분 값이 DB-트리거에 의해 자동으로 설정된 경우에만 작동합니다.
언급URL : https://stackoverflow.com/questions/4458734/get-last-id-on-inserted-row-in-oracle-db
'programing' 카테고리의 다른 글
| jQuery ID는 다음으로 시작합니다. (0) | 2023.08.07 |
|---|---|
| 파이썬에서 클래스의 파일 경로를 가져오려면 어떻게 해야 합니까? (0) | 2023.08.07 |
| 정의되지 않은 'visitExpression' 속성을 읽을 수 없습니다. (0) | 2023.08.07 |
| jQuery에서 csv로 내보내기 (0) | 2023.08.07 |
| Xcode / iOS 시뮬레이터:중요한 위치 변경을 수동으로 트리거 (0) | 2023.08.02 |