Database (4) 썸네일형 리스트형 [MySQL] UPSERT, INSERT ON DUPLICATE UPDATE 등록 또는 수정 INSERT ON DUPLICATE KEY UPDATE 사용 업무를 하며 INSERT 또는 UPDATE를 하기 위해 DUPLICATE KEY UPDATE를 사용한다. 오라클 DB를 사용할 때는 MERGE INTO를 사용했는데 그 유사한 기능이라고 생각하면 되겠다. PRIMARY KEY 중복이 발생하게 되면 UPDATE를 실행하게 되고 중복 된 PRIMARY KEY가 없을 경우에는 INSERT 하게 된다. 예시 1 INSERT INTO A_TABLE (A,B,C) VALUES (1,2,3) ON DUPLICATE KEY UPDATE C = C+1; /* UPDATE시 아래와 유사한 동작을 한다 */ UPDATE A_TABLE SET C=C+1 WHERE A=1; 예시 2 - Aliases 사용 INSERT.. [MySQL] REPLACE INTO, DELETE INSERT 대체 REPLACE INTO REPLACE INTO는 기존에 등록된 ROW 데이터를 REPLACE에 해당하는 데이터로 대체하기 위해 사용한다. 이때 그 기준은 PK값을 기준으로 하게 된다. 만약 PK에 해당하는 ROW가 없다면 INSERT와 동일하게 동작 한다. REPLACE INTO를 하기 위해서는 대상 테이블에 INSERT, DELETE 권한을 필요로 한다. 예시1 (PK - ID) REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00'); REPLACE INTO test VALUES (1, 'New', '2014-08-20 18:47:42'); SELECT * FROM test; +----+------+---------------------+ | id | .. [MySQL] TEMPORARY TABLE 사용하기 #2 (BULK INSERT) [MySQL] TEMPORARY TABLE 사용하기 #1 시작하기 전... 엑셀 업로드 후 저장시 대량으로 DB에 업로드 해야 할 일이 생겼다. 그래서 MySQL의 TEMPORARY TABLE 을 이용해 일괄 등록 후 TEMPORARY TABLE에 등록된 데이터로 정합성 체크 까지 하는 로직 shinechan.tistory.com 앞에서(위 링크 참조) TEMPORARY TABLE 생성과 삭제하는 구문에 대해 작성했는데 이어서 생성한 TEMPORARY TABLE을 사용하여 다량의 데이터를 INSERT 하고 실제 사용 테이블에 INSERT 하기 전 데이터의 정합성 체크까지 하는 예제를 작성하겠다. 그리고 BULK INSERT를 MyBatis에서 사용하는 부분도 함께 작성 BULK INSERT를 하는 이유?.. [MySQL] TEMPORARY TABLE 사용하기 #1 시작하기 전... 엑셀 업로드 후 저장 시 대량으로 DB에 업로드해야 할 일이 생겼다. 그래서 MySQL의 TEMPORARY TABLE 을 이용해 일괄 등록 후 TEMPORARY TABLE에 등록된 데이터로 정합성 체크까지 하는 로직을 개발하기로 했다. MySQL TEMPORARY TABLE 이란? MySQL에서 임시 테이블은 단일 세션에서 여러 번 재사용할 수 있는 임시 결과 집합을 저장할 수 있는 특별한 유형의 테이블입니다. MySQL은 세션이 종료되거나 연결이 종료되면 자동으로 임시 테이블을 제거 합니다. 물론 DROP TABLE을 사용하여 임시 테이블을 더 이상 사용하지 않을 때 이 명령문을 사용하여 명시적으로 임시 테이블을 제거할 수 있습니다. TEMPORARY TABLE 생성 & 삭제 예시 C.. 이전 1 다음