생존기술_IT/DB [MS,My,Orcl]

[SQL - MYSQL, MSSQL, ORACLE] INSERT+UPDATE 동시에..

LeCafeCreme 2020. 7. 14. 17:01

[ MYSQL ]

INSERT INTO users (NAME, email) VALUES ('이름', '이메일@닷컴') ON DUPLICATE KEY UPDATE name='이름', email='이메일@닷넷';

 

[ MSSQL ]

IF EXISTS(

            SELECT unique_key FROM tablename

            WHERE unique_key = '1'

         )

    BEGIN

            -- SELECT 'OK!' ;

            UPDATE tablename

            SET val1 = '발발발'

            , val2 = '벨벨벨';

    END

    

    ELSE

        BEGIN

        INSERT INTO tablename

            (

            unique_key

            , val1

            , val2

            )

        values

            (

            '1'

            ,'발발발'

            ,'벨벨벨'

            )

       END

 

[ORACLE] - 출처: https://offbyone.tistory.com/253 [쉬고 싶은 개발자]

MERGE INTO TB_SCORE S

    USING TMP_SCORE T

       ON (S.COURSE_ID = T.COURSE_ID AND S.STUDENT_ID = T.STUDENT_ID)

    WHEN MATCHED THEN

        UPDATE SET S.SCORE = T.SCORE

    WHEN NOT MATCHED THEN

        INSERT (S.COURSE_ID, S.STUDENT_ID, S.SCORE) 

        VALUES (T.COURSE_ID, T.STUDENT_ID, T.SCORE)