ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • mysql, 오라클
    카테고리 없음 2022. 6. 21. 18:02
    728x90

    Primary Key 혹은 Unique Index가 생성되어 있는 테이블 데이터를 Insert 할 때, "Error Code: 1062. Duplicate entry '??' for key PRIMARY" 같은 에러를 자주 보게 된다. 테이블에 테이터를 Insert 하려는데 동일한 Key를 갖는 Row가 이미 테이블에 존재하는 경우 만나게 되는 에러다.

     

    테이블에 데이터가 없으면 insert 하고 있으면 update 하는 동작이 필요한 경우가 있다. 이 때, select를 해보고 insert, update를 판단하는 동작으로 애플리케이션을 작성할 수도 있다.

     

     

    보통 내가 항상 쓰던 방법 하지만 다른방법이 있음

    오라클

    MERGE INTO 테이블

       USING 테이블

       ON(조건문)

    WHEN MATCHED THEN

       UPDATE SET 칼럼 = 값

    WHEN NOT MATCHED THEN

       INSERT (칼럼1, 칼럼2, 칼럼3)

       VALUES(값1, 값2, 값3)

     

    mysql

    mysql> insert into t1  values (NULL'ENTRY4'24ON DUPLICATE KEY UPDATE size = 24;

    728x90
Designed by Tistory.