And Brain said,
[Express, Mybatis, OracleDB] selectKey가 안 될 때 본문
반응형
글에 파일첨부 기능을 넣기위해 insert 문을 xml에 적어서 oracleDB와 express를 mybatis로 연동시켰는데
왜인지 Mybatis selectKey 문법이 express 환경에서 안 되서 insert를 할 때 selectKey를 안 쓰고 마지막 시퀀스 값
을 가져오는 법을 사용했다.
SEQ.NEXTVAL은 증가시키고 SEQ.CURRVAL은 현재 시퀀스 값을 가져온다는 것은 잘 알 것이다.
이 두 개만 있으면 얼핏 selectKey가 필요없어보이지만
selectKey를 쓰는 이유가 있지 않겠는가?
SEQ.CURRVAL은 같은 세션에 SEQ.NEXTVAL을 한 번 때려줘야만 가능한 녀석이다.
SEQ.CURRVAL만 따로 쓰거나 먼저 쓸 수 없다는 얘기다. 그래서 시퀀스의 최근 값을 가져오는데 가장 효율적인 것이 selectKey인 것이다.
하지만 이 selectKey가 안 된다면?
그럴때 삽입문에 시퀀스의 최근 값을 가져오는 방법은
INSERT INTO 테이블명(COLUMN1,COLUMN2)
VALUES(#{COLUMN1},(SELECT LAST_NUMBER FROM USER_SEQUENCES WHERE SEQUENCE_NAME='시퀀스명(대문자)'))
*** LAST_NUMBER는 연산이 가능하다. ex) SELECT (LAST_NUMBER - 1) FROM USER_SEQUENCES
Thanks for watching, Have a nice day.
반응형
'IT > Node.js' 카테고리의 다른 글
Mongoose | 거대한 데이터베이스(MongoDB)를 다루는 작은 거인 (7) | 2022.11.11 |
---|---|
Mongoose | node.js를 위한 우아한 MongoDB 객체 모델링 (0) | 2022.11.07 |
Node.js가 각광받은 이유 - 비동기(async), non-blocking (0) | 2022.10.15 |
[Express] req.params, req.query, req.body (0) | 2022.09.10 |
oracleDB를 잔뜩 담은 mybatis를 express에 넣어 보내버리기 (5) | 2022.08.17 |
Comments