ygreenb
yellowgreenblue
ygreenb
전체 방문자
오늘
어제
  • TIL (130)
    • Algorithm & Data Structure (70)
      • 이론 (4)
      • 프로그래머스 (54)
      • 백준 (12)
    • JAVA (4)
    • Android Studio (9)
    • Database (1)
    • WEB (25)
      • HTML+CSS (7)
      • Javascript (5)
      • React (11)
      • Django (1)
      • Node.js (1)
    • Computer Vision (13)
    • Git (8)

블로그 메뉴

  • HOME
  • TAG
  • GITHUB

공지사항

인기 글

태그

  • reactjs
  • 해시
  • dfs
  • getOrDefault
  • React
  • Android
  • PriorityQueue
  • kotiln
  • HashMap
  • Comparator
  • DP
  • git bash
  • sort
  • 깃
  • BFS
  • compareTo()
  • 스택/큐
  • greedy
  • java
  • stack
  • 백준
  • git
  • 프로그래머스
  • Arrays.sort()
  • 안드로이드
  • 프로그래머스 Lv.2
  • 깃허브
  • 코틀린
  • Queue
  • entrySet

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ygreenb

yellowgreenblue

Database

[DB] 데이터 삽입과 수정(insert() vs save() vs update())

2022. 9. 5. 12:09

DB 메소드 차이 정리

Create, Update API를 구현하다 보면 빈번히 insert()와 update(), save() 함수를 사용하게 된다. 정형화된 템플릿처럼 메소드를 사용해왔는데, 정확히 db에서 어떤식으로 작동하는지에 대해서 알고있지 않았던 것 같아 정리해보기로 했다.

insert()와 update()는 명확하다. 하지만 문제는 save() 인데, 이 함수는 삽입에도 수정에도 사용해서 더 헷갈림을 유발했던 것같다. 그래서 삽입 시 insert()와 수정 시 update()를 각각 save()와의 동작방식을 비교해 차이점을 적어보았다.

삽입 시 insert()와 save()

insert : id가 동일한 값을 저장하려 한다면 오류 발생

save: id가 동일해도 저장한다(수정한다) 기존에 저장된 데이터 위에 덮어쓴다.

수정 시  update()와 save() 

update : 특정 필드만 수정할 수 있다.

save : 필드단위로 수정되지 않고 데이터를 덮어쓰므로 이전데이터는 사라진다.

직접 예시를 들어보면 그 차이는 명확하다. 만약 하기와 같이 id, name, content 라는 컬럼을 가진 데이터가 있다고 하자.

{
  "id" : 1,
  "name" : "test",
  "content" : "기존내용"
}

여기서 name 컬럼의 내용만을 수정해보려고 한다.

먼저, update(1, { "name" : "update" }) 를 한다면 결과는 하기와 같다.

{
  "id" : 1,
  "name" : "update",
  "content" : "기존내용"
}

기존의 데이터는 그대로 남아있고, 수정된 내용의 name만 업데이트가 됨을 알 수 있다.

하지만, save({"id":1, "name" : "save" }) 를 한다면 결과는 하기와 같다.

{
  "id" : 1,
  "name" : "save",
}

기존의 데이터는 사라지고, 수정하려고 넣은 데이터로 덮어쓰워짐을 확인할 수 있다.

저작자표시 (새창열림)
    ygreenb
    ygreenb
    개발공부기록장

    티스토리툴바