본문 바로가기

DATABASE/PostgreSQL3

PostgreSQL COALESCE 함수 NULL 값 대체하는 방법과 활용 예시 PostgreSQL에서 COALESCE 함수는 NULL 값을 대체할 수 있는 값들 중에서 첫 번째로 나타나는 값을 반환하는 함수입니다. 이 함수는 인자로 받는 값들 중에서 NULL이 아닌 값이 존재하면, 첫 번째로 나타나는 NULL이 아닌 값을 반환하며, 모든 값이 NULL이면 NULL 값을 반환합니다. COALESCE 함수의 사용 방법은 다음과 같습니다. COALESCE(value1, value2, value3, ...) value1, value2, value3, ...은 체크할 값들을 의미합니다. 이 함수는 첫 번째 값부터 순서대로 체크하며, NULL이 아닌 값을 만나면 그 값을 반환합니다. 만약 모든 값이 NULL이면 NULL 값을 반환합니다. 예를 들어, 다음과 같이 COALESCE 함수를 사용할.. 2023. 4. 14.
인덱스 생성 Lock Wait 최소화 하기 - Postgres 큰 테이블에 인덱스 생성하기 무서워요. 작은 테이블이라고 하더라도 사용 중인 시스템에 뭔가 해야 한다는 것이 무서운 일인데요. 그래도 해야 하는 일은 언제나 발생합니다. 해야 한다면 Lock을 최소화하면서 작업하고 싶은데요. Postgres에서는 인덱스 생성작업에서 Lock을 최소화할 수 있는 옵션을 제공하고 있어요. 옵션 이름하여 Concurrently입니다. 보통 인덱스 생성하는 방법은 DB 대부분 비슷해요. create index 인덱스명 on 테이블명(컬럼1, 컬럼2) 이렇게 만들면 해당 테이블을 사용하는 작업들이 멈출 수 있어요. 서비스 장애로까지 이어질 수 있습니다. 오라클에서는 online을 제공하고 mysql에서는 lock=none과 같은 옵션을 제공해주고 있어요. 일반적인 인덱스 생성 구.. 2023. 3. 28.
PostgreSQL 사용자 삭제 하기 PostgreSQL에서 유저 삭제하려고 할 때 권한이 부여되어 있어도 삭제가 안되더라고요 강제로 삭제 하려면 아래 명령어를 사용하면 됩니다. 그냥 삭제하려면 drop user 삭제하려는 이름을 넣어서 삭제하면 되는데요 SQL Error [2BP01]: 오류: 기타 다른 개체들이 이 롤에 의존하고 있어, "username" 롤을 삭제할 수 없음 Detail: "땡땡 데이터베이스"에 대한 권한 "땡땡 스키마"에 대한 권한 이런 오류가 날 수 있어요 강제로 삭제할 수 있어요 DROP OWNED BY username; DROP USER username; 이렇게 하면 오류 무시하고 삭제 할 수 있어요 2021. 11. 17.
반응형