테이블 이름에 특수 문자가 포함된 테이블을 삭제하는 경우 문제가 발생합니다. (리눅스&포스트그레스)

테이블 이름에 특수 문자가 포함된 테이블을 삭제하는 경우 문제가 발생합니다. (리눅스&포스트그레스)

Linux(백엔드: Postgres)에서 DROP 테이블 명령에 문제가 있습니다. "prabhu2016-02-08--2016-02-15"라는 테이블이 있습니다. 아래 명령을 사용하여 이 테이블을 삭제하면 오류가 발생합니다... Error: Syntax error at or Near '-' line 1: ...Action table prabhu2016-02-08--2016-02.. .

코드는 다음과 같습니다. psql -d DBname -c "테이블 myschema.prabhu2016-02-08--2016-02-15 삭제

하이픈 문제인 것 같습니다.

답변1

쿼리가 shellwize와 복잡하거나 가장 잘 인용된 이름/변수를 사용해야 하는 경우 다음과 같이 합니다.

  1. 모든 이름을 변수로 사용: tablename="bla"
  2. 다음과 같이 psql을 호출합니다.

    su - postgres -c "/usr/local/ctera/postgres/bin/psql << EOF
    drop table "$tablename";
    EOF"

관련 정보