본문 바로가기

- DB

[MySQL/Oracle] 데이터 있으면 update, 없으면 insert

반응형

추가하려는 데이터가 있을 때는 update, 없으면 insert하도록 쿼리에서 처리할 수 있습니다.

MySQL은 ON DUPLICATE KEY UPDATE 명령어로,

Oracle은 MERGE INTO로 해당 기능을 수행할 수 있습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
-- MySQL
INSERT INTO 
    HALF_STORAGE(
        UESR_ID, 
        GROUP_NAME
    )
VALUES (
    'halfJang',
    'admin'
)
ON DUPLICATE KEY UPDATE 
    USER_ID = 'halfJang'
 
-- ORACLE
MERGE INTO 
    HALF_STORAGE hs
USING DUAL
ON (
        hs.USER_ID = 'halfJang'
    )
WHEN MATCHED THEN
    UPDATE SET hs.GROUP_NAME = 'admin'
WHEN NOT MATCHED THEN
    INSERT (
        hs.USER_ID,
        hs.GROUP_NAME
    )
    VALUES (
        'halfJang',
        'admin'
    )

 

반응형

'- DB' 카테고리의 다른 글

[Oracle] ORA-00001: 무경설 제약 조건(PK)에 위배  (0) 2020.10.22
[MySQL, Maria] 계정 생성 및 권한 부여  (0) 2020.08.23
[Oracle, MySQL, MSSQL] PROCEDURE  (0) 2020.07.14
[MySQL] int(11), ZEROFILL  (0) 2020.07.14
[MyBatis] #, $ 차이  (0) 2020.06.23