본문 바로가기
안드로이드

안도로이드 SQLite insert or replace 구현

by Dokon Jang 2021. 2. 15.
반응형

SQLite에서 Insert와 Update를 함께 처리 할 수 있는 "insert or replace" 문법이 있습니다.
SQLite의 "insert or replace"에 대해서는 아래의 링크를 참고하세요.

https://docko.tistory.com/entry/SQLite-inert-or-replace%EC%98%A4%EB%9D%BC%ED%81%B4MS-SQL-Merge-%EA%B8%B0%EB%8A%A5

 

SQLite inert or replace(오라클/MS-SQL Merge 기능)

오라클 또는 MS-SQL의 Merge와 유사한 기능으로 SQLite에서는 insert or replace 기능이 있습니다. 사용법은 Merge보다 간단하지만, 디테일한 적용은 조금 부족합니다. insert or replace 기..

docko.tistory.com


SQLiteDatabase의 replace 메소드는 데이터가 없으면 Insert를 하고, 데이터가 있으면 Update합니다.
단, 테이블에 PK가 지정되어야 Insert와 Update가 정확히 작동합니다.
PK가 지정되어 있지 않으면 무조건 Insert로 작동됩니다.

 

String dbFilePath = "/data/data/my_package/database/db.sqlite"
SQLiteDatabase db = SQLiteDatabase.openDatabase(dbFilePath, null, SQLiteDatabase.OPEN_READWRITE);

ContentValues values = new ContentValues();
values.put("ID", "ID-001");
values.put("SORT", 1);
values.put("NAME", "테스트 아이템");
values.put("IS_CHECK", "Y");

db.replace("ITEMS", null, values);
반응형

댓글