nhkiiim / TIL

Today I Learned
https://github.com/nhkiiim/TIL/discussions
1 stars 0 forks source link

PostgreSQL : ON CONFLICT 구문과 Sequence 함께 사용하기 #102

Open nhkiiim opened 1 year ago

nhkiiim commented 1 year ago

PostgreSQL에서 ON CONFLICT 구문 사용 시 시퀀스를 함께 사용하면 conflict 조건을 확인을 위해 시퀀스 값을 입력하게 되고,
자동으로 시퀀스를 생성해주는 INSERT인 경우 NULL 값이 들어가며 NOT NULL 제약조건을 위반

INSERT INTO 테이블 (  TEST_ID, TEST_NM  ) VALUES 
( 5, 'name' ) ON CONFLICT ( TEST_ID ),
( NULL, 'name' ) ON CONFLICT ( TEST_ID )
DO UPDATE SET 
TEST_NM = 'name'

PostgreSQL SERIAL : #101

스택오버플로 관련 이슈

nhkiiim commented 1 year ago

MyBatis 조건문을 사용해 동적 쿼리로 UPDATE가 아닐 때(NULL이 아닐 때)만 시퀀스 INSERT 명시적으로 표기.. 더 좋은 방법이 있을 것 같음..