-
[MariaDB/MySQL]데이터 insert하면서 중복되면 update하는 기능DataBase/MariaDB & MySQL 2018. 5. 5. 14:34
다른 개발자분의 소스를 보다가 DB에 insert를 시행하는데
만약 데이터가 있다면 기존의 데이터를 덮어쓰기가 가능한 방법을 찾았다.
MariaDB에만 있는 기능인지 오라클이나 다른 DB에도 있는 기능인지는 모르겠다.
일단, MariaDB/MySQL에 존재하는 기능이다.
그 기능은
INSERT ON DUPLICATE KEY UPDATE 기능이다.
Primary key/Unique key가 기존에 존재하는 데이터를 찾을 경우, 그 데이터에 UPDATE를 하는 것이다.
*쓰는 방법 예시
12345678910111213INSERT INTO book_tableSET book_seq = 1000 -- primary/unique key, book_title = 'greek zorba', book_price = 20000, book_location = '종로', book_author = '니코스 카잔차키스'ON DUPLICATE KEY UPDATEbook_title = 'greek zorba', book_price = 20000, book_location = '종로', book_author = '니코스 카잔차키스'cs 만약 book_seq에 1000이라는 값에 이미 다른 데이터가 있다면
지금 주입하려는 값으로 대신 UPDATE가 되는 것이다.
더 다른 방법으로도 쓸 수 있는데 다른 방법이 궁금하다면
여기로 들어가면 된다!
'DataBase > MariaDB & MySQL' 카테고리의 다른 글
[MySQL] Mysql에서 프로시저(procedure) 안에 사용된 문자열 검색하기 (0) 2019.01.15 [문자열 연결 function] MySQL의 group_concat과 oracle의 LISTAGG 사용 방법 (0) 2018.10.22 [iBatis+Spring+mariaDB] AUTO_INCREMENT의 초기화와 transaction에 관하여 (0) 2018.05.03 Transaction과 MySQL의 MyISAM 엔진(JUnit 테스트 중에 깨달은 사실) (0) 2018.04.17 [MySQL] '같지 않다' 조건 연산자 (0) 2018.03.07