Skip to content

PostgreSQL:InsertInto

Insert into if not exists

쿼리 결과가 없을 경우 INSERT 하는 방법:

INSERT INTO users (full_name, login, password) 
  SELECT 'Mahbub Tito','tito',SHA1('12345') FROM DUAL
WHERE NOT EXISTS 
  (SELECT login FROM users WHERE login='tito');

UPSERT

이미 존재하는 경우 레코드를 업데이트하거나없는 경우 새 레코드를 삽입하는 것. 형태는 다음과 같다:

INSERT
    INTO
    TABLE_NAME(COLUMN_1)
VALUES(VALUE_1) ON
CONFLICT TARGET ACTION;

샘플 예제:

INSERT
    INTO
    CUSTOMERS(NAME,
    EMAIL)
VALUES ('MICROSOFT',
'[email protected]') ON
CONFLICT (NAME) DO
UPDATE
SET
    EMAIL = EXCLUDED.EMAIL || ';' || CUSTOMERS.EMAIL;

COMMIT;

See also

Favorite site