DB/postgresql

PostgreSQL INSERT 중복방지

SambaLim 2020. 4. 10. 20:53
PostgreSQL_INSERT_ON_CONFLICT

INSERT ON CONFLICT

ON CONFLICT 는 PostgreSQL 9.5이상의 버전에서 사용이 가능합니다. 더 낮은 버전을 사용하고 있다면, 사용이 어렵습니다.

INSERT ON CONFLICT 문은 새롭게 INSERT될 데이터가 이미 테이블에 존재하는 경우, 거기에 대한 제어를 할 수 있게 합니다.

INSERT ON CONFLICT

INSERT ON CONFLICT 문은 아래와 같이 사용됩니다.

DML의 INSERT 문에 ON CONFLICT target action 이 붙는 형식으로 이루어집니다.

target & action

  • target

    • column_name: 속성명
    • ON CONSTRAINT constraint_name: 제약조건 이름(UNIQUE constraint의 이름)
    • WHERE predicate: WHERE
  • action

    • DO NOTHING
    • DO UPDATE SET column_1 = value_1, .. WHERE condition: 테이블의 몇몇 필드를 수정

예시 - target: column_name

예시 - target: ON CONSTRAINT

예시 - action: DO UPDATE SET

'DB > postgresql' 카테고리의 다른 글

PostgreSQL EXISTS & IN  (0) 2020.04.10
pg_hba.conf 설정하기  (0) 2019.01.15