개발자
현재 postgreSQL DB, 시퀀스를 사용하고 있는 상태입니다. 에러 내용 : currval of sequence "시퀀스명" is not yet defined in this session select nextval('시퀀스명'); 현재 쿼리를 실행후 select currval('시퀀스명'); 쿼리를 실행하면 정상적으로 쿼리가 실행됩니다. 하지만 nextval로 시퀀스를 올리지않고 currval 현재 시퀀스를 조회하면 위와 같은 에러가 발생합니다. 왜 에러가 발생하는 건가요? 선배님들 도와주세요!
답변 1
안녕하세요! 공식 문서를 따르면 currval의 값은 nextval이 호출되어야 할당이 되는 것 같아요. - https://www.postgresql.org/docs/current/functions-sequence.html - https://www.postgresql.org/docs/current/sql-createsequence.html 이유는 세션 로컬하게 작동하도록 설계 되어있기 때문입니다. 참고해보시면 좋을 것 같아요 :) - https://velog.io/@dailylifecoding/postgresql-nextval-currval-calling-order
익명
작성자
2023년 01월 31일
쉽게 말해서 시퀀스가 꼬일수 있어서 저렇게 시퀀스 설계를 한거 같네요 친절한 답변 감사합니다~~
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!