-
on duplicate key update(MySQL) Vs merge into(Oracle) 사용법DataBase/Oracle 2018. 8. 10. 16:48
위의 두 기능은 insert를 하려는데 이미 데이터가 있다면 update를 할 수 있는 function이다.
테이블 하나를 사용하는 것만 정리해둬야겠다.(아직까진 테이블 하나씩만 사용하고 있어서)
MySQL의 경우,
123456789101112INSERT INTO demo_table --테이블명(company_seq, --primary keycompany_name,company_emp_name)VALUES(9999,'tistory','조르바')ON DUPLICATE KEY UPDATE -- primary key가 중복일 경우, 해당 primary row에 updatecompany_emp_name = '초콜릿'cs Oracle의 경우,
123456789101112131415161718MERGE INTO demo_table --테이블명USING dual --원래는 같이 사용할 테이블이지만, 테이블 하나만 사용하면 dual로 설정ON (company_seq = '9999') -- join할 primary key를 조건식으로 넣어준다. 원래는 조건식이 들어갈 자리.WHEN MATCHED THEN -- primary key가 중복될 경우 처리할 쿼리UPDATE SET company_emp_name = '초콜릿'WHEN NOT MATCHED THEN -- primary key가 중복되지 않을 경우 처리할 쿼리INSERT(company_seq, --primary keycompany_name,company_emp_name)VALUES(9999,'tistory','조르바')cs 짠~ 위의 소스처럼 사용하면 된다.
'DataBase > Oracle' 카테고리의 다른 글
MySQL의 INSERT IGNORE을 Oracle에서 구현하기 (0) 2018.08.17 MySQL의 LIMIT 기능을 Oracle에서 ROWNUM을 이용해 구현 (0) 2018.08.13 Oracle(오라클) auto commit 설정하기 (0) 2018.08.10 ORA-00909: 인수의 개수가 부적합합니다. "invalid number of arguments" (0) 2018.08.10 mySQL은 공백을 허용했지만, oracle은 공백을 허용하지 않았다. (0) 2018.08.09