Skill/postgreSQL

[PostgreSQL] 데이터 있으면 UPDATE 없으면 INSERT

진열사랑 2023. 1. 4. 13:36

출처:https://mine-it-record.tistory.com/m/342

(INSERT INTO ~ ON CONFLICT DO UPDATE)

 구문

INSERT INTO [TABLE] (COLUMN1, COLUMN2, ...)
     VALUES (VALUE1, VALUE2, ...)
     ON CONFLICT ([column_name / ON CONSTRAINT constraint_name/ WHERE predicate])
     [DO NOTHING]
     [DO UPDATE SET column1 = value1, ...]

구문에 대해 상세히 설명하자면

ON CONFLICT column_name : 특정 컬럼명을 기준으로 체크를하며 컬럼을 여러개 넣을수도 있다.(pk기준)

ON CONFLICT ON CONSTRAINT ~ : 테이블 생성시 만든 constraint명을 기준으로 체크한다.