본문 바로가기
빌드노트 검색

빌드노트

데이터베이스

데이터베이스 카테고리의 글입니다.

글 검색

글 목록

총 48개의 글

  1. PostgreSQL에서 NULL 두 개를 UNION하면 뒤의 정수가 실패하는 이유

    NULL UNION 1은 성공하는데 NULL UNION NULL UNION 1은 실패하는 이유를 중간 결과의 pg_typeof로 확인한다. 첫 NULL의 integer 캐스트, UNION ALL의 중복 처리, 괄호에 따른 타입 결정 차이를 PostgreSQL 18.6 실행 결과로 비교한다.

  2. PostgreSQL에서 끝이 다른 긴 테이블 이름이 중복으로 충돌할 때

    PostgreSQL에서 긴 테이블 이름의 끝만 바꾸면 길이 제한 밖의 차이가 사라져 중복으로 충돌할 수 있다. 실제 서버 제한과 카탈로그 이름을 조회하고, PostgreSQL 18.6의 NOTICE·SQLSTATE·짧은 이름 대조로 확인한다.

  3. CREATE INDEX CONCURRENTLY가 마이그레이션에서 25001로 막힐 때

    CREATE INDEX CONCURRENTLY의 25001 오류에서 같은 연결의 BEGIN과 실행기의 트랜잭션 설정을 확인한다. 인덱스 생성 단계를 분리하고, 실제 인덱스 상태와 마이그레이션 이력을 대조하는 기준을 PostgreSQL 18.6 실습으로 설명한다.

  4. PostgreSQL에서 NULL로 바뀐 행을 <>가 놓치는 이유

    이전 값과 새 값을 <>로 비교하면 NULL로 비우거나 채운 행이 빠진다. PostgreSQL 18.6에서 비교식과 WHERE 결과를 확인하고, IS DISTINCT FROM의 선택 기준과 COALESCE가 빈 문자열·0 전환을 숨기는 경우를 설명한다.

  5. PostgreSQL에서 같은 01/02/2026이 다른 날짜로 저장되는 이유

    PostgreSQL의 DateStyle 입력 순서에 따라 같은 01/02/2026이 1월 2일 또는 2월 1일로 저장된다. PostgreSQL 18.6에서 MDY·DMY, ISO 입력, 표시만 달라지는 날짜와 잘못된 날짜를 비교하고 입력 계약을 명확히 하는 방법을 설명한다.

  6. PostgreSQL INSERT를 ROLLBACK했는데 다음 ID가 2인 이유

    PostgreSQL에서 INSERT를 롤백해 행이 없어져도 nextval이 소비한 번호는 돌아오지 않는다. 새 시퀀스의 행 수·발급 상태·다음 ID를 비교하고, 연속 업무 번호를 별도로 설계해야 하는 이유를 설명한다.

  7. jsonb_set에 true를 줬는데 중첩 키가 생기지 않는 이유

    jsonb_set의 true는 없는 마지막 항목을 추가하지만 중간 부모까지 만들지는 않는다. PostgreSQL 18.6에서 부모 없음·객체·JSON null을 비교하고, 필요한 부모만 만들며 형제 키를 보존하는 조건식과 루트 병합의 차이를 확인한다.

  8. PostgreSQL array_agg 배열 순서가 다르면 ORDER BY 위치부터 본다

    array_agg의 원소 순서는 집계 안의 ORDER BY로 정하고, 최종 결과 행의 순서는 바깥 ORDER BY로 정한다. PostgreSQL 18.6에서 두 입력 방향, 동점 보조 키, 그룹 정렬을 비교하고 관찰값과 문서상 보장을 구분한다.

  9. PostgreSQL LEFT JOIN 뒤 json_agg가 빈 배열 대신 [null]을 반환한다

    LEFT JOIN 뒤 json_agg의 [null]은 자식이 없는 행 하나가 집계에 들어간 결과일 수 있다. PostgreSQL 18.6에서 자식 0개·1개·여러 개와 NULL 내용을 비교하고, 기본 키 FILTER와 집계 밖 COALESCE로 빈 배열을 만들면서 실제 자식은 보존한다.

  10. PostgreSQL LIKE에서 _를 검색했는데 밑줄 없는 행도 나온다

    매개변수로 전달해도 _와 %는 LIKE 패턴으로 해석된다. PostgreSQL 18.6에서 원래 조회와 명시적 ESCAPE, 잘못된 치환 순서를 비교하고, 입력 그대로 포함하는 검색에서 !·%·_를 처리할 순서를 정한다.

  11. PostgreSQL UNIQUE인데 NULL이 든 같은 키가 저장되는 이유

    nullable 복합 키의 기본 UNIQUE는 NULL을 포함한 중복을 허용한다. PostgreSQL 18.6의 실제 INSERT와 23505를 비교하고, 15에서 도입된 NULLS NOT DISTINCT의 선택 기준과 기존 중복을 정리해야 하는 제약 변경 경계를 설명한다.

  12. PostgreSQL에서 이름을 합쳤는데 전체가 NULL이 된다

    이름 일부가 NULL이면 ||로 합친 이름 전체가 NULL이 된다. PostgreSQL 18.6에서 concat·concat_ws·COALESCE의 결과와 남는 공백을 비교하고, 빈 문자열도 생략하거나 이름이 모두 없을 때 대체 문구를 표시하는 식을 설명한다.