ssh를 사용하여 postgres에서 여러 줄 쿼리를 실행하는 편리한 방법은 무엇입니까?


9

콘솔에서 몇 가지 쿼리를 작성해야한다고 가정 해보십시오. CREATE TABLE문과 같은 여러 줄 쿼리를 실행하는 가장 효율적인 방법은 무엇입니까?

저는 Microsoft Management Studio를 사용하는 데 익숙하지만 이제 PostgreSQL에 대해 즉시 배워야합니다.


입력 하시겠습니까? 복사 및 붙여 넣기? 파일에서 리디렉션 하시겠습니까?
Michael Hampton

예, 손가락으로 입력하는 것을 의미합니다 : P. 내가에서 받고 있어요 것은 포스트 그레스이다 #프롬프트가 나타납니다 만 상황이 좋아 위해 중대하다 한 번에 한 줄을 입력 CREATE DATABASE하거나 ALTER USER. 실행하기 전에 어떻게 텍스트를 멋지게 포맷 할 수 있습니까?
채드 해리슨

답변:


4

PostgreSQL이 신경 쓰는 한 "여러 줄 쿼리"와 같은 것은 실제로 없습니다. 공백과 줄 바꿈은 모두 의미가 없습니다 (문자열이나 탭 내에서 COPY또는 문이나 다른 특별한 장소).

SSH를 통해 "콘솔에서"쿼리를 작성하는 것은 일반적으로 psqlPostgres 대화식 터미널 인 도구를 사용하여 수행됩니다 (자세한 내용은 문서 참조 ).

옵션 을 사용하여 쿼리포함 된 텍스트 파일을 전달할 수 있습니다 .psql-f

psql명령 행에서 (쉘에 적절하게 인용 된) 조회를 전달 하거나 STDIN (표준 입력 스트림)을 통해 조회 할 수도 있습니다 ( -c옵션 참조) .


파이프는 파이프에 대해 생각해야합니다. 나는 아직도 배운다.
채드 해리슨

25

다음은 PostgreSQL의 대화식 터미널로 연결됩니다.

$ psql <your database name>

그런 다음 \e(또는 \edit)을 입력 하여 편집기를 엽니 다 ( vi기본값).

# \e

쿼리를 작성하십시오.

select now();

마지막으로 편집기 (예 : :wq에서 vi)를 저장하고 종료 psql하면 방금 작성한 쿼리가 실행됩니다.

다른 같은 편집기를 설정하려면 vim또는 nano, 다음과 같은 환경 변수의 설정을 : PSQL_EDITOR, EDITOR, VISUAL.

자세한 내용은 https://www.postgresql.org/docs/current/app-psql.html을 검색하십시오 \e.


2

쿼리를 임시 파일에 쓰고 다음을 사용하여 실행할 수 있습니다. psql -f /path/to/temp/file


0

분명하지만, 아무도 모르는 경우 psql 프롬프트에서 직접 여러 줄 문장을 작성할 수 있습니다.

psql -h localhost -p 5432 -U postgres public
public=# SELECT
public=# *
public=# FROM
public=# mytable
public=# LIMIT 1;

후행 ;문자 참고 -모든 SQL 명령은이 문자가 발행 된 후에 만 ​​실행됩니다. 따라서 가장 쉬운 방법은 후행으로 여러 줄의 SQL 명령을 복사하여 붙여 넣는 것 ;입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.