Category: SQL

  • 특수 문자 컬럼명 사용

    PostgreSQL에서 한글 자료 입력에 문제는 없는 것 같다.

    자료 매핑에 이용하는 파일에서 header 부분을 영어로 바꿔서 사용하고 있었다. 한글이 지원이 되는 것 같고, 괄호같은 특수 문자도 사용할 수 있으므로 가능하면 그냥 사용해 보기로 한다. 한글 사용은 그대로 하면 되지만 괄호나 / 같은 특수 문자를 이용하기 위해서는 따옴표로 묶어 주면 된다.

    ALTER TABLE mapping.drug_mapping_by_hira ADD COLUMN "전문/일반" TEXT;
    ALTER TABLE mapping.drug_mapping_by_hira ADD COLUMN "제품코드(개정후)" TEXT;
    

    그런데 이러게 해도 별로 이득이 없다. 오히려 쿼리 작성할 때 오류만 뱉어낸다. 밑줄 정도로 바꾸어 주자.

  • 텍스트 형식을 시간 형식으로 변환하기

    데이터 포맷에 맞게 자료를 입력해 두어야 나중에 편하다는 것을 깨달았다. 그래서 Sentinel CDM을 만들 때 최대한 맞춰서 만들려고 한다. OMOP CDM과 상당 부분 유사하기 때문에 어렵지는 않은데, 시간을 바꾸어 주어야 한다. TIMESTAMP을 이용하면 되는 것 같다. 병원 자료는 24시간 형식으로 입력되어 있기 때문에 여기에 맞춰준다.

    ALTER TABLE sentinel.vital_signs ALTER COLUMN measure_time TYPE TIME USING TO_TIMESTAMP(measure_time, 'HH24:MI:SS');
    

  • pgAdmin Master Password 없애기

    www.pgadmin.org/docs/pgadmin4/development/master_password.html

    일단 홈페이지 방법대로 하면 된다. 그런데 위치가 틀렸다.

    나의 경우에는 C:\Program Files\pgAdmin 4\v4\web 에 있는 config.py파일을 수정했다.

  • PostgreSQL DATABASE DROP 하기

    현재 접속중인 사용자가 있더라도, 강제적으로 DATABASE를 DROP 시키는 방법이다. 다음 내용을 참고했다. pgAdmin으로 접속해 있으면, 이것이 계속 세션을 유지시키고 있으므로 꼭 종료시키고 실행한다.

    How to drop a PostgreSQL database if there are active connections to it? – Stack Overflow

    SELECT pg_terminate_backend(pg_stat_activity.pid) 
    FROM pg_stat_activity 
    WHERE pg_stat_activity.datname = 'cdm_build' 
    AND pid <> pg_backend_pid();