'이가 없으면 잇몸으로 살겠다'_며 Postgresql의 merge문이 없음을 한탄하며 UPSERT썼던 이 글을 쓴지도 벌써 어연 4년이 지난 지금...! PostgreSQL 15 릴리즈 부터 Merge문을 공식적으로 지원하기 시작했다! 아니 이놈들아~ 하면 되잖여~ 이걸 왜 이제 해줬냐며~~아무튼 신나는 마음으로 궁디빵디를 흔들며 호다닥 공식 문서를 읽으러 들어가보자😙🥳 ✔️ 공식 문서에 따르면 15버전 이하의 버전에서는 아직 INSERT ... ON CONFLICT 구문을 사용하여UPSERT문을 써서 사용해야한다고 공지하고 있으니, 현재 개발하는 환경의 DB버전을 꼭 확인해보고 쓰자! 문법(Syntax)Merge 구문은 이미 오라클을 썼던 분들이라면 익숙할테지만 한번 더 톺아보고 가자.M..
지난 프로젝트에서 과업으로 레거시 프로젝트의 프로시저를 Java의 비즈니스 로직으로 전환하는 과업이 있었다. 현업에선 프로시저의 사용에 대해 뜨거운 감자처럼 찬반이 갈리는 분위기가 좀 있는 분위기다. “프로시저 안좋다” “유지보수 힘들다” “요새 읽을 수 있는 개발자가 별로없다” 등의 반대측의 여러 이유를 듣긴 했지만, 정말 왜 현업 백엔드에서는 프로시저를 선호하지 않을까? 개념과 장단점을 알아보기로 한다. Stored Procedure란 저장 프로시저 또는 스토어드 프로시저 는 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. 데이터베이스의 작업의 절차를 RDBMS에 저장한 것이다. 프로시저를 이해하기 앞서 애플리케이션의 아키텍처에 대한 간략히 정리해보자. 일반적인 애플리케이션의 아키..
업무단에서 너무나도 당연스럽게 날짜 타입을 사용할 때는 Timestamp을 사용해 왔다. 늦은감이 있지만 왜 일까? 무슨 차이가 있길래 Timestamp를 써야하는가 싶어 정리해보았다. 날짜형 데이터 타입 (mariaDB 기준) 1) TIME 시간을 표시하는 데이터 타입. HH:MM:SS(또는 HHH:MM:SS)형의 출력을 나타낸다. TIME은 현재 시간 뿐만 아니라 과거 시간이나, 특정 이벤트끼리의 간극을 표현하는데 사용되기도 한다. 2) DATE 날짜를 표시하는 데이터타입. 시간을 포함하지 않는다. YYYY-MM-DD형으로 입출력하며, '1001-01-01' 부터 '9999-12-31'까지 입력이 가능하다. 3) DATETIME 날짜와 시간을 포함하는 데이터 타입. YYYY-MM-DD HH:MM:SS..
운영 유지보수 프로젝트에서 업무를 하다 보니, 생각보다 더 많은 부정확한 데이터가 있어 자주 곤란한 상황들이 있었습니다. 그때마다 시간을 들여서 개선하는 것보단 당장의 과업을 해결하기 위해 엑셀로 1차 가공 및 2차 수작업 정비와 같은 비효율적인 작업들을 많이 해왔습니다. (일일이 눈으로 8천건 중복찾기라던가...물론 자의가 아니라 타의에 의해..T0T) 그 중에 가장 큰 업무가 중복데이터 제거하기 였습니다. 공공시스템이다보니 데이터포털의 공공데이터를 활용한 2차 서비스를 기능 개발하는 업무가 다수 있었고, 데이터포털에서 얻은 자료들은 생각보다 최신화되어 지지 않거나 중복이 걸러지지 않는 광물 원석에 가까운 날것의 그것(?)인 경우가 많았습니다. 그래서 데이터베이스에서 SQL로 중복데이터를 제거하고 단일..
PostgreSQL에는 DML(INSERT, UPDATE, DELETE) 실행 후, affected rows 갯수 대신 정보를 반환해주는 구문이 있다. 그것이 바로 RETURNING 구문이다 사용방법은 아주아주 간단하다!! INSERT, UPDATE, DELETE문 뒤에 RETURNING \* 을 쓰면 실행 결과 ROWS를 반환한다. 이 흥미로운 문법을 아래의 활용 예제를 보면서 RETURNING 을 어떻게 쓸 수 있는지 자세히 살펴보자👩🤟 Examples 활용1. SELECT KEY Spring 환경에서 우리는 insert(혹은 update)에서 SQL 실행 후 특정 값을 반환하고 싶을 때, 대게의 경우에 mybatis(혹은 ibatis)를 이용하여 이렇게 썼을 것이다. //old INSERT INTO..
💡2024년 updatepostgresql v15에서 드디어 장한 merge문도 보고가세오😘 [PostgresQL] 드디어 나온 PostgresQL 15의 Merge into 구문 사용하기'이가 없으면 잇몸으로 살겠다'_며 Postgresql의 merge문이 없음을 한탄하며 UPSERT썼던 이 글을 쓴지도 벌써 어연 4년이 지난 지금...! PostgreSQL 15 릴리즈 부터 Merge문을 공식적으로 지원하기 시작했다fascinate-zsoo.tistory.com ... List가 없이 에디터 하나로 insert/update를 해야하는 게시판을 작성하는 업무가 있어서 찾아보다가 UPSERT라는 것을 알게 되었다!UPSERT 는 일종의 MERGE문 같은 개념으로(postgresql은 merge가 없..
1) Windows - Show View - Data Source Explorer 열기 2) Database Connection폴더 - 우클릭 - New 3) Connection Profile에서 'Oracle' 선택 - Next 4) New Driver 선택! 5) Name/Type에서 "Oracle Thin Driver" - Version "11" 선택 나의 경우는 Oracle DBMS를 11g XE(Express Edition)을 했기때문에 Oracle thin driver 11을 선택했다! 혹시나 다른 버전을 사용한다면 본인에게 맞는 것을 선택하도록 하자! 6) Name/Type 카테고리 옆의 JAR List - Clear All 후 - Add JAR 클릭 7) 추가할 JAR파일의 경로 C드라이브..