[SQL] 수정, 등록

이호인·2022년 3월 24일
0

프로젝트

목록 보기
5/6

해보자! 한번에.

  • 간단한 게시판을 만들던 중에 문득 수정과 등록 부분 Controller를 각각 만들어서 사용하는 것이 비효율적이라고 느꼈고 글을 저장한다는 관점에서 본다면 하나로 볼 수 있지 않을까 생각이 들었다.

  • 그래서 생각한 점이 boardId 같이 pk키가 있으니 값이 없다면 새 글로 등록, 값이 이미 있다면 수정으로 하면 되지 않을까 생각이 들어 한번 찾아보기 시작.

  • 결과는 역시나 있었다. ORACLE은 merge into , mySQL은 on duplicate key

  • 중복된 키가 있나 한번 확인하는 작업을 거치기 때문에 이미 값이 있는데 중복으로 들어갈 확률을 막아준다.

mySQL

INSERT INTO 테이블(
컬럼명 1,
컬럼명 2,
) VALUES (
	'값 1',
    '값 2'
)
ON DUPLICATE KEY UPDATE
	컬럼명 = '값';

ORACLE

MERGE INTO 테이블
USING DUAL -----------------> 다른 테이블에서 비교 X , 현재 테이블 직접 입력
ON (컬럼명 = ${파라미터값})
WHEN MATCHED THEN
	UPDATE SET 컬럼명 = 값
WHEN NOT MATCHED THEN
	INSERT (컬럼명 1, 컬럼명2, 컬럼명3)
    VALUES ('값',값,값)
  • 둘 다 써본 결과 mySQL이 좀 더 간편하지 않았나 싶다.
  • 오라클은 null 값 허용이 안해서 그런지 한참 에러 때문에 고생도....😥
  • 쨋든 둘 다 성공.

reference!

https://offbyone.tistory.com/253
https://sdevstudy.tistory.com/12

profile
공부 기록

0개의 댓글