이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

윈 토토

​​이름

윈 토토Postgres대화식 터미널
윈 토토 [옵션 ] [ dbname [ 사용자 ] ]

요약

윈 토토는 터미널 기반입니다 프론트 엔드Postgres. 그것 대화식으로 쿼리를 입력 할 수 있습니다.Postgres그리고 쿼리를 참조하십시오 결과. 또는 입력은 파일에서 발생할 수 있습니다. 게다가, 그것은 다수의 메타 명령과 다양한 쉘 같은 것을 제공합니다 스크립트 작성을 용이하게하고 광범위하게 자동화하는 기능 다양한 작업.

설명

데이터베이스에 연결

윈 토토일반Postgres클라이언트 응용 프로그램. 데이터베이스에 연결하려면 이름을 알아야합니다. 대상 데이터베이스, 호스트 이름 및 포트 번호 서버 및 연결하려는 사용자 이름윈 토토해당 매개 변수에 대해 알 수 있습니다 명령 줄 옵션을 통해-d, -h, -p-u각각. 논쟁이 발견되면 어떤 옵션에도 속하지 않습니다. 데이터베이스 이름 (또는 데이터베이스 이름도 인 경우 사용자 이름 주어진). 이러한 모든 옵션이 필요한 것은 아니며 기본값이 적용됩니다. 호스트 이름을 생략하면 psql은 Unix 도메인을 통해 연결됩니다. 로컬 호스트의 서버로 소켓. 기본 포트 번호 컴파일 타임이 결정됩니다. 데이터베이스 서버가 동일한 기본값은 대부분 포트를 지정할 필요가 없습니다. 케이스. 기본 사용자 이름은 Unix 사용자 이름입니다. 기본 데이터베이스 이름. 당신은 그냥 연결할 수 없습니다 모든 사용자 이름의 데이터베이스. 데이터베이스 관리자가해야합니다 귀하의 액세스 권한에 대해 알려주었습니다. 당신을 구하기 위해 타이핑 환경 변수를 설정할 수도 있습니다pgdatabase, pghost, pgportandPGUSER적절한 값으로.

어떤 이유로 든 연결을 만들 수없는 경우 (예 : 권한이 충분하지 않은 우체국 장은 실행되지 않습니다 서버 등),윈 토토의지 오류를 반환하고 종료하십시오.

쿼리 입력

정상 작동 중윈 토토데이터베이스 이름으로 프롬프트를 제공합니다.윈 토토현재 연결되어 있습니다. 문자열 "="이 뒤 따릅니다. 예를 들어,

$ 윈 토토 testdbPostgreSQL 대화식 터미널 인 윈 토토에 오신 것을 환영합니다.

유형 : \ 배포 약관에 대한 저작권
       \ h SQL 명령에 대한 도움말
       \? 내부 슬래시 명령에 대한 도움
       \ g 또는 세미콜론으로 종료하여 쿼리를 실행하십시오
       \ Q를 종료합니다

testdb =

프롬프트에서 사용자가 입력 할 수 있습니다SQL쿼리. 일반적으로 입력 라인이 전송됩니다 쿼리-종료 세미콜론에 도달 할 때 백엔드에. 줄 끝은 쿼리를 종료하지 않습니다! 따라서 쿼리는 될 수 있습니다 명확성을 위해 여러 줄 위에 퍼지십시오. 쿼리가 전송 된 경우 오류없이 쿼리 결과가 표시됩니다. 화면.

쿼리가 실행될 때마다윈 토토비동기식에 대한 여론 조사 에 의해 생성 된 알림 이벤트듣기andNotify.

윈 토토Meta-Commands

당신이 입력하는 모든 것윈 토토인용되지 않은 백 슬래시로 시작하는 것은입니다.윈 토토처리 된 메타 명령윈 토토자체. 이 명령은입니다 무엇을 만드는윈 토토흥미 롭습니다 관리 또는 스크립팅. 메타 명령이 더 일반적입니다 슬래시 또는 백 슬래시 명령이라고합니다.

a 형식윈 토토명령 백 슬래시, 그리고 즉시 명령 동사가 이어집니다. 모든 주장. 인수는 명령 동사와 분리되어 있습니다 그리고 여러 공백 캐릭터에 의해 서로에 의해 서로.

whitespace를 인용 해야하는 인용에 포함하려면 단일 인용문. 그러한 주장에 단일 인용문을 포함시키기 위해 백 슬래시로 우선합니다. 단일 따옴표에 포함 된 모든 것은 다음과 같습니다 또한 C- 유사 대체에 대하여\ n(New Line),\ t(탭),\Digits, \0Digits\ 0xDigits( 주어진 소수점, 10 대 또는 16 진수의 문자 암호).

인용되지 않은 인수가 콜론으로 시작되는 경우 (:), 그것은 변수와 값으로 간주됩니다. 변수는 대신 인수로 간주됩니다.

“백 티크”에 인용 된 인수 (`)는 전달되는 명령 줄로 간주됩니다. 쉘. 명령의 출력 (후행 Newline 포함 제거)는 인수 값으로 간주됩니다. 위의 탈출 시퀀스도 백티크에도 적용됩니다.

일부 명령은 이름을 가져옵니다SQL식별자 (예 : 테이블 이름) 논쟁. 이러한 주장은의 구문 규칙을 따릅니다.SQL이중 인용문 관련 : 식별자 이중 인용문이 없으면 소문자로 강요됩니다. 다른 모든 것을 위해 명령은 이중 인용문이 특별하지 않으며 일부가 될 것입니다. 논쟁.

다른 인용되지 않은 백 슬래시가있을 때 인수에 대한 구문 분석이 중단됩니다 발생합니다. 이것은 새로운 메타 명령의 시작으로 간주됩니다. 그만큼 특별 시퀀스\\(2 개의 백 슬래시) 논쟁의 끝을 표시하고 계속 구문 분석SQL쿼리. 그런 식으로SQLand윈 토토명령을 라인에서 자유롭게 혼합 할 수 있습니다. 그러나 어쨌든 메타 명령의 주장은 끝까지 계속 될 수 없습니다. 선.

다음 메타 명령이 정의됩니다.

\ a

현재 테이블 출력 형식이 정렬되지 않은 경우 전환 정렬. 정렬되지 않은 경우 정렬되지 않은 상태로 설정하십시오. 이것 거꾸로 호환성을 위해 명령이 유지됩니다. 보다\ pset일반적인 해결책

\ c [ 제목 ]

인쇄중인 테이블의 제목 설정 결과 그러한 제목을 쿼리 또는 설정하지 않습니다. 이 명령은 동일합니다 에게\ pset title제목. (이 명령의 이름 이전에 설정하는 데 사용 된 "Caption"에서 파생됩니다. AN의 캡션html테이블.)

\ connect(또는\ c) [ dbname [ 사용자 이름 ] ]

새 데이터베이스 및/또는 사용자 이름. 이전 연결이 닫혔습니다. 만약에dbnameis-현재 데이터베이스 이름이 가정됩니다.

if사용자 이름생략되었습니다 현재 사용자 이름이 가정됩니다.

특별한 규칙으로\ connect모든 인수는 기본 데이터베이스에 기본 사용자 (시작하여 얻은대로윈 토토논쟁).

연결 시도가 실패한 경우 (잘못된 사용자 이름, 액세스 거부, 등) 이전 연결은 만 만윈 토토대화식 모드. 비 인터랙티브 스크립트를 실행할 때 처리는 즉시 오류로 중지됩니다. 이것 오타에 대한 사용자 편의로 구별이 선택되었습니다. 한편으로는 스크립트가 아닌 안전 메커니즘이 우연히 다른 사람의 잘못된 데이터베이스에서 행동합니다 손.

\ copy 테이블 [ OIDS ] { From | to } filename| Stdin | stdout [Delimiters와 함께 '캐릭터' ] [ null as at 'String' ]

프론트 엔드 (클라이언트) 사본을 수행합니다. 이것은 작전입니다SQL 와이즈 토토 PostgreSQL : 문서 : 7.0 : 복사명령 대신 백엔드의 지정된 파일을 읽거나 쓰는 것 결과적으로 백엔드 액세스 및 특수 사용자가 필요합니다 파일 시스템에 구속 될뿐만 아니라 권한 백엔드에 의해 액세스 가능,윈 토토파일과 경로를 읽거나 씁니다 백엔드와 로컬 파일 시스템 간의 데이터.

명령의 구문은의 구문과 유사합니다.SQL COPY명령 (세부 사항에 대한 설명 참조). 주목하십시오. 이로 인해 특별 구문 분석 규칙은에 적용됩니다.\ copy명령. 특히 변수 대체 규칙과 백 슬래시 탈출은 적용되지 않습니다.

팁 :이 작업은만큼 효율적이지 않습니다.SQL copy모든 데이터가 전달되어야하므로 명령 클라이언트/서버 IP 또는 소켓 연결을 통해 을 위한 많은 양의 데이터 다른 기술이있을 수 있습니다 선택할 만한.

참고 :해석의 차이에 주목하십시오Stdinandstdout프론트 엔드와 백엔드 사본 사이 : 프론트 엔드 사본에서 항상 참조윈 토토의 입력 및 출력 스트림. a 백엔드 카피Stdin어디서나copy그 자체가 왔습니다 (예를 들어,로 실행되는 스크립트가 실행됩니다.-f옵션) 및Stdout쿼리 출력 스트림을 나타냅니다 (보다\ O아래 메타 명령).

\ Copyright

저작권 및 배포 조건을 표시Postgres.

\ d 관계

의 모든 열 표시관계(테이블,보기, 색인 또는 시퀀스), 유형 및 특수 속성 와 같은NOT NULL또는 기본값, if 어느. 관계가 실제로 테이블 인 경우 정의 된 것 인덱스도 나열됩니다. 관계가보기라면, 견해 정의도 표시됩니다.

명령 양식\ d+is 동일하지만 테이블 열과 관련된 주석 또한 표시됩니다.

참고 :if\ d호출됩니다 주장이 없으면에 해당합니다.\ dtvs모든 테이블 목록을 표시 할 예정입니다. 보기 및 시퀀스. 이것은 순전히 편리함입니다 측정하다.

\ da [ 패턴 ]

사용 가능한 모든 집계 함수와 함께 그들이 작동하는 데이터 유형. 만약에패턴(정규 표현)입니다 지정된, 일치하는 골재 만 표시됩니다.

\ dd [ 개체 ]

설명을 보여줍니다개체(규칙적 일 수 있습니다 표현), 또는 인수가없는 경우 모든 대상. ( "객체"는 집계, 기능, 연산자, 유형을 포함합니다. 관계 (테이블, 뷰, 지수, 시퀀스, 큰 개체), 규칙 및 트리거.) 예 :

=\ dd 버전객체 설명
  이름 |   무엇 |        설명
---------+----------+-----------------------------------
 버전 | 기능 | Postgresql 버전 문자열
(1 행)

객체에 대한 설명은로 생성 될 수 있습니다.의견 SQLCommand.

참고 : PostgresPG_DESCRIPTION 시스템에 객체 설명을 저장합니다 테이블.

\ df [패턴 ]

이용 가능한 기능과 논증과 함께 나열됩니다 그리고 반환 유형. 만약에패턴(정규 표현)가 지정되고 일치하는 함수 만 지정됩니다 표시됩니다. 양식 인 경우\ df+사용됩니다. 각 기능에 대한 추가 정보를 포함합니다 언어와 설명이 표시됩니다.

\ distvs [패턴 ]

이것은 실제 명령 이름이 아닙니다 : 문자 i, s, t, v, s 인덱스, 시퀀스, 테이블, 뷰 및 시스템을 나타냅니다. 각각 테이블. 당신은 그들 중 일부 또는 전부를 지정할 수 있습니다 누구와 함께 목록을 얻는 명령 소유자는.

if패턴지정되어 있습니다. 정기적 인 표현은 목록을 그들에게 제한합니다. 이름이 일치하는 객체. "+"를 추가하면 명령 이름, 각 객체는 연관성과 함께 나열됩니다 설명,있는 경우

\ dl

이것은 별칭입니다\ lo_list, 큰 개체 목록을 보여줍니다.

\ do [이름 ]

사용 가능한 작업자가 피연산자 및 반환으로 나열합니다 유형. 만약에이름지정되어 있습니다. 그 이름을 가진 연산자 만 표시됩니다.

\ dp [ 패턴 ]

이것은 별칭입니다\ z더 큰 니모닉 값 (“디스플레이 권한”).

\ dt [패턴 ]

모든 데이터 유형 또는 일치하는 데이터 유형 만 나열패턴. 명령 양식\ dt+추가 정보 표시.

\ edit(또는\ e) [ filename ]

iffilename지정되어 있습니다. 파일이 편집됩니다. 편집기가 종료 된 후에는 그 내용이 있습니다 쿼리 버퍼로 다시 복사했습니다. 논쟁이 주어지지 않으면 현재 쿼리 버퍼는 임시 파일로 복사됩니다. 그런 다음 같은 방식으로 편집했습니다.

새 쿼리 버퍼가 정상적인 규칙윈 토토, 여기 전체 버퍼는 단일 라인으로 처리됩니다. (따라서 당신 이런 식으로 "스크립트"를 만들 수없고\ i그것을 위해) 이것은 또한 쿼리가 끝나는 경우 (또는 오히려) 세미콜론이 포함되어 있으면 즉시 실행됩니다. ~ 안에 다른 경우 쿼리 버퍼에서 기다릴 것입니다.

팁 : 윈 토토환경 변수 검색psql_editor, 편집기, 그리고Visual(순서대로) 사용할 편집기. 그들 모두가 없다면,/bin/vi가 실행됩니다.

\ echo 텍스트 [ ... ]

인수를 표준 출력에 인쇄합니다 하나의 공간과 그 뒤에 새로운 라인이 이어집니다. 이것은 유용 할 수 있습니다 스크립트의 출력에 정보를 산재합니다. 을 위한 예:

=\ echo`date`tue 10 월 26 일 21:40:57 Cest 1999
첫 번째 인수가 인용되지 않은 경우-nThe Trailing Newline은 쓰여지지 않았습니다.

팁 :사용하는 경우\ O사용하려는 쿼리 출력을 리디렉션하려면 명령\ Qecho이 명령 대신.

\ encoding [ 인코딩 ]

Multibyte를 사용하는 경우 클라이언트 인코딩을 설정합니다 인코딩. 논쟁이 없으면이 명령은 다음을 보여줍니다 현재 인코딩.

\ f [ String ]

정렬되지 않은 쿼리 출력에 대한 필드 분리기를 설정합니다. 그만큼 기본값은“입니다.|” ( "파이프"기호). 참조 참조\ pset일반적인 방법 출력 옵션 설정.

\ g [ { filename | |명령 } ]

현재 쿼리 입력 버퍼를 백엔드로 보냅니다. 선택적으로 출력을 저장합니다.filename또는 출력을 a로 파이프합니다 실행하려면 별도의 유닉스 쉘명령. 맨\ g는 세미콜론과 거의 같습니다. 에이\ g인수와 함께 "원샷"이 있습니다. 대안\ O명령.

\ help(또는\ H) [ 명령 ]

지정된 구문 도움말SQL명령. 만약에명령지정되지 않은 다음윈 토토모든 것을 나열합니다 Syntax 도움말을 사용할 수있는 명령. 만약에명령는 별표 (“*”)입니다 모든 것에 대한 구문 도움말SQL명령 표시됩니다.

참고 :타이핑을 단순화하려면 명령이 구성됩니다 여러 단어 중에 인용 할 필요가 없습니다. 따라서 괜찮습니다 입력하려면\ help alter 테이블.

\ H

켜기html쿼리 출력 체재. 인 경우html형식입니다 이미 켜져 있습니다. 기본 정렬 된 텍스트로 다시 전환됩니다. 체재. 이 명령은 호환성과 편의성을위한 것입니다. 하지만 참조\ pset다른 설정에 관한 출력 옵션.

\ i filename

파일에서 입력을 읽습니다filename마치 마치 실행합니다 키보드에 입력되었습니다.

참고 :화면에서 줄을보고 싶다면 그들이 읽을 때 당신은 변수를 설정해야합니다echotoall.

\ l(또는\ list)

서버의 모든 데이터베이스와 그 목록 소유자. 명령 이름에 "+"를 추가하여 데이터베이스에 대한 설명도 있습니다. if yourPostgres설치가 컴파일되었습니다 멀티 바이트 인코딩 지원, 각각의 인코딩 방식 데이터베이스도 표시됩니다.

\ lo_export loid filename

큰 개체를 읽습니다OID loid데이터베이스에서filename. 이것은 미묘하게입니다 서버 기능과 다릅니다lo_export데이터베이스 서버가 서버에서 실행되는 사용자 파일 시스템.

팁 :use\ lo_list찾기 큰 대상의OID.

참고 :설명 참조lo_transaction중요한 변수 모든 대형 객체 작업에 관한 정보.

\ lo_import filename [ 댓글 ]

파일을 a에 저장합니다Postgres“큰 물체”. 선택적으로, 그것은 주어진 주석을 객체와 연관시킵니다. 예:

foo =\ lo_import '/home/peter/pictures/photo.xcf' '나 그림'lo_import 152801
응답은 큰 객체가 객체를 수신했음을 나타냅니다 ID 152801은 다시 한 번 물체. 이런 이유로 항상 권장됩니다 인간이 읽을 수있는 주석을 모든 물체와 연관시킵니다. 그것들은 할 수 있습니다 그런 다음와 함께 보입니다.\ lo_list명령.

이 명령은 미묘하게 다릅니다 서버 측lo_import때문에 로컬 파일 시스템에서 로컬 사용자 역할을합니다. 서버의 사용자 및 파일 시스템.

참고 :설명 참조lo_transaction중요한 변수 모든 대형 객체 작업에 관한 정보.

\ lo_list

모든 목록 표시Postgres“큰 물체”현재 소유자와 함께 데이터베이스에 저장됩니다.

\ lo_unlink loid

큰 개체를 삭제합니다OID loid데이터베이스에서.

팁 :use\ lo_list찾기 큰 대상의OID.

참고 :설명 참조lo_transaction중요한 변수 모든 대형 객체 작업에 관한 정보.

\ O [ {filename | |명령} ]

향후 쿼리 결과를 파일에 저장filename또는 파이프 미래 결과는 a 실행하려면 별도의 유닉스 쉘명령. 인수가 지정되지 않으면 쿼리 출력이 재설정됩니다.Stdout.

“쿼리 결과”에는 모든 테이블, 명령 응답, 데이터베이스 서버에서 얻은 통지 및 데이터베이스를 쿼리하는 다양한 백 슬래시 명령의 출력 (와 같은\ d)이지만 오류는 아닙니다 메시지.

팁 :쿼리 사이의 텍스트 출력을 산재합니다 결과, 사용\ Qecho.

\ p

현재 쿼리 버퍼를 표준 출력에 인쇄합니다.

\ pset 매개 변수 [ value ]

이 명령은 쿼리 출력에 영향을 미치는 옵션을 설정합니다 결과 테이블.매개 변수설정 할 옵션을 설명합니다. 의 의미론value

조정 가능한 인쇄 옵션은 다음과 같습니다.

형식

출력 형식을로 설정합니다.정렬되지 않은, 정렬, html또는라텍스. 독특한 약어입니다 허용된. (한 글자가 충분하다는 것을 의미합니다.)

“정렬되지 않은”은 선에 튜플의 모든 필드를 씁니다. 현재 활성 필드 분리기에 의해 분리됩니다. 이것 의도 된 출력을 만들기위한 것입니다. 다른 프로그램 (Tab-Separated, 쉼표로 분리). "정렬 된"모드는 표준이며 사람이 읽을 수 있고 멋지게 형식화 된 텍스트 출력 기본. “html” 그리고 "라텍스"모드는 각 마크 업을 사용하는 문서에 포함됩니다 언어. 그들은 완전한 문서가 아닙니다! (이것은 할 수도 있습니다 너무 극적이지 않음html, 그러나 라텍스에서는 완전한 문서가 있어야합니다 싸개.)

국경

두 번째 인수는 숫자 여야합니다. 일반적으로 숫자가 높을수록 테이블이 더 많고 줄을 더 많이 그러나 이것은 특정 형식에 따라 다릅니다. 안에html모드, 이것이 로 직접 번역Border = ...다른 사람의 속성 값 0 (테두리 없음), 1 (내부 분할 선) 및 2 (테이블 프레임) 의미가 있습니다.

확장(또는x)

정기적 인 형식과 확장 형식 사이의 토글. 언제 확장 형식이 활성화되고 모든 출력에는 두 개의 열이 있습니다 왼쪽에 필드 이름과 오른쪽. 이 모드는 데이터가 맞지 않으면 유용합니다. 일반 "수평"모드의 화면.

확장 모드는 4 개의 출력 모두에 의해 지원됩니다 모드.

NULL

두 번째 인수는 인쇄 해야하는 문자열입니다. 필드가 무효 일 때마다. 기본값은 인쇄되지 않습니다 예를 들어 공허함으로 쉽게 착각 할 수있는 모든 것 끈. 따라서 글을 쓰기로 선택할 수 있습니다\ pset null "(null)".

FieldSep

정렬되지 않은 상태에서 사용할 필드 분리기를 지정합니다 출력 모드. 예를 들어 탭을 만들 수 있습니다. 또는 다른 프로그램이 할 수있는 쉼표로 구분 된 출력 선호하다. 탭을 필드 분리기로 설정하려면 타입\ pset FieldSep "\ t". 기본 필드 분리기는“입니다.|” ( "파이프" 상징).

RecordSep

사용할 레코드 (LINE) 분리기를 지정합니다 정렬되지 않은 출력 모드. 기본값은 Newline입니다 성격.

tuples_only(또는t)

튜플과 전체 디스플레이 사이의 토글. 가득한 디스플레이에는 열과 같은 추가 정보가 표시 될 수 있습니다 헤더, 타이틀 및 다양한 바닥 글. 튜플에서만 모드, 실제 테이블 데이터 만 표시됩니다.

제목 [ 텍스트 ]

이후 인쇄 된 모든 인쇄에 대한 테이블 제목을 설정합니다 테이블. 이것은 출력을 설명하는 데 사용될 수 있습니다 태그. 논쟁이 주어지지 않으면 제목이 없어집니다.

참고 :이전에만 영향을 받았습니다html모드. 이제 설정할 수 있습니다 출력 형식의 제목.

TableAttr(또는T) [ 텍스트 ]

배치 할 속성을 지정할 수 있습니다 내부html 테이블태그. 이것은 예를 들어CellPadding또는bgcolor. 아마 원하지 않을 것입니다 지정하려면국경여기 이미 돌보고 있습니다\ pset 국경.

Pager

테이블 출력을 수행하기 위해 호출기 목록을 전환합니다. 만약 환경 변수Pager가 설정되어 있습니다. 출력은 지정된 프로그램에 배치됩니다. 그렇지 않으면more사용됩니다.

어쨌든윈 토토적절한 경우 호출기 만 사용합니다. 그것은 의미합니다 무엇보다도 출력은 터미널에 대한 것입니다. 테이블은 일반적으로 화면에 맞지 않습니다. 인쇄의 모듈 식 특성 때문에 라인 수를 항상 예측할 수있는 것은 아닙니다. 실제로 인쇄됩니다. 그런 이유로윈 토토나타나지 않을 수 있습니다 호출기 사용시기와시기에 대해 매우 차별적입니다. 그렇지 않습니다.

이러한 다른 형식의 모습에 대한 그림예제섹션.

팁 :다양한 바로 가기 명령이 있습니다\ pset. 보다\ a, \ c, \ H, \ t, \ t\ x.

참고 :전화 오류입니다\ pset인수없이. 미래에 이것은 호출은 모든 인쇄의 현재 상태를 보여줄 수 있습니다 옵션.

\ Q

종료윈 토토프로그램.

\ Qecho 텍스트 [ ... ]

이 명령은 동일합니다\ echo모든 출력이 쿼리 출력에 기록됩니다. 채널,\ O.

\ r

쿼리 버퍼를 재설정 (지우기)

\ s [ filename ]

명령 줄 기록을 인쇄하거나 저장filename. 만약에filename생략, 역사는입니다 표준 출력에 작성되었습니다. 이 옵션은 사용할 수 있습니다 만약에윈 토토사용하도록 구성되어 있습니다 그만큼gnu역사 도서관.

참고 :윈 토토버전 7.0 더 이상 명령을 저장할 필요가 없습니다. 역사는 프로그램에서 자동으로 수행 될 것입니다 종료. 역사는 또한 매번 자동으로로드됩니다 시간윈 토토시작.

\ set [ 이름 [ value [ ... ]]]

내부 변수 설정이름tovalue또는 둘 이상의 값이있는 경우 주어진, 그들 모두의 연결에. 두 번째가 없다면 인수가 주어지고 변수는 값없이 설정됩니다. 에게 변수를 설정하지 않고 사용하십시오\ unset명령.

유효한 변수 이름은 문자, 자리를 포함 할 수 있습니다 밑줄. 섹션을 참조하십시오.윈 토토자세한 내용은 변수입니다.

변수를 무엇이든 설정할 수 있지만 당신은 원한다,윈 토토취급 특별한 몇 가지 변수. 그들은 문서화되어 있습니다 변수에 대한 섹션.

참고 :이 명령은 완전히 별개입니다SQL명령사설 토토 사이트 PostgreSQL : 문서 : 7.0 : 세트.

\ t

출력 열 이름 제목 및 행 표시를 전환합니다. 바닥 글. 이 명령은에 해당합니다.\ pset tuples_only편의.

\ t table_options

내에 배치 할 옵션을 지정할 수 있습니다테이블태그에서html표 출력 모드. 이 명령은입니다 동등한\ pset Tyleattrtable_options.

\ w {filename | | 명령}

현재 쿼리 버퍼를 파일에 출력합니다filename또는 유닉스에 파이프합니다 명령명령.

\ x

확장 행 형식 모드 토글. 따라서 그것은 동일합니다 에게\ pset 확장.

\ z [ 패턴 ]

데이터베이스에서 모든 테이블 목록을 생성합니다. 적절한 액세스 권한이 나열되어 있습니다. 논쟁이 있다면 주어지면 일치하는 테이블에 목록.

test =\ z데이터베이스에 대한 액세스 권한 "테스트"
 관계 |           액세스 권한
----------+----------------------------------------------
 my_table |  "= r", "joe = arwr", "Group Staff = ar"
다음과 같이 읽으십시오.
  • "= r": public읽기 (select) 표에서의 권한.

  • "joe = arwr": userJoe읽기, 쓰기 (업데이트, 삭제), "Append"(삽입) 권한 및 표에서 규칙을 작성할 수있는 권한.

  • "그룹 직원 = AR": Group직원hasselectand삽입허가.

명령PostgreSQL : 문서 : 7.0 : 범퍼카 토토and윈 토토 PostgreSQL : 문서 : 7.0 : 취소사용됩니다 액세스 권한을 설정하려면

\! [ 명령 ]

별도의 유닉스 쉘로 탈출하거나 유닉스를 실행합니다. 명령명령. 그만큼 인수는 더 이상 해석되지 않으며, 껍질은 볼 것입니다 그대로.

\?

슬래시 (“\”) 명령에 대한 도움말 정보 얻기.

명령 줄 옵션

구성된 경우윈 토토표준 UNIX 짧은 옵션을 모두 이해하고gnu-스타일의 긴 옵션. 후자는 그렇지 않습니다 모든 시스템에서 사용할 수 있습니다.

-a, -echo-all

읽을 때 모든 줄을 화면에 인쇄합니다. 이것 대화식보다는 스크립트 처리에 더 유용합니다 방법. 이것은 변수 설정과 동일합니다echotoall.

-a,-no-align

정렬되지 않은 출력 모드로 전환합니다. (기본 출력 모드는 그렇지 않으면 정렬됩니다.)

-c, --- 커맨드쿼리

이를 지정합니다윈 토토하나의 쿼리 문자열 실행,쿼리그리고 나서 종료하십시오. 이것은 유용합니다 쉘 스크립트.

쿼리a 백엔드가 완전히 구분할 수있는 쿼리 문자열 (즉, 아니요가 포함되어 있습니다.윈 토토특정 기능) 또는 단일 백 슬래시 명령입니다. 따라서 당신은 혼합 할 수 없습니다SQL윈 토토메타 명령. 에게 그것을 달성하면, 당신은 문자열을 |에 넣을 수 있습니다.윈 토토, :echo "\ x \\ select * from foo;" | 윈 토토.

-d,-dbnamedbname

연결할 데이터베이스의 이름을 지정합니다. 이것은 지정에 해당dbname첫 번째 비 옵션 인수로서 명령 줄에서.

-e, -echo-Queries

백엔드로 전송되는 모든 쿼리를 표시하십시오. 이것은 변수 설정에 해당echoto쿼리.

-e, -echo-hidden

\ d 및 기타로 생성 된 실제 쿼리를 반향합니다 백 슬래시 명령. 포함하려면 이것을 사용할 수 있습니다 자신의 프로그램과 유사한 기능. 이것은 변수 설정에 해당echo_hidden내부에서윈 토토.

-f,-파일filename

파일 사용filenameas 쿼리를 읽는 대신 쿼리 소스입니다 대화식. 파일이 처리 된 후윈 토토종료. 이것은 여러 가지면에서 내부 명령에 해당\ i.

이 옵션 사용은 쓰기와 미묘하게 다릅니다윈 토토 <filename. 일반적으로 둘 다 할 것입니다 당신이 기대하는 것, 그러나 사용-f줄이있는 오류 메시지와 같은 멋진 기능을 활성화합니다. 숫자. 이 옵션을 사용할 가능성도 약간 있습니다. 시작 오버 헤드가 줄어 듭니다. 반면에 쉘의 입력 리디렉션을 사용하는 변형 (이론적으로) 당신이 할 것과 정확히 동일한 출력을 산출하도록 보장 손으로 모든 것을 입력했다.

-f,--field-separator분리기

use분리기필드로 분리 기호. 이것은에 해당합니다.\ pset FieldSep또는\ f.

-h, -hosthostname

기계의 호스트 이름을 지정합니다.Postmaster가 실행 중입니다. 이 옵션이 없으면 통신은 로컬을 사용하여 수행됩니다 유닉스 도메인 소켓.

-h, -html

켜기html표 출력. 이것은에 해당합니다.\ pset 형식 html또는\ H명령.

-l, ---list

사용 가능한 모든 데이터베이스를 나열한 다음 종료합니다. 다른 비 연결 옵션은 무시됩니다. 이것은와 유사합니다 내부 명령\ list.

-o,-outputfilename

모든 쿼리 출력을 파일에 넣습니다filename. 이것은와 동일합니다 명령\ O.

-p, -port포트

TCP/IP 포트를 지정하거나 생략에 따라 로컬 UNIX 도메인 소켓 파일 확장Postmaster연결을 듣고 있습니다. 기본값의 값pgport환경 변수 또는 설정되지 않은 경우 지정된 포트에 컴파일 시간, 일반적으로 5432

-p,--pset과제

스타일로 인쇄 옵션을 지정할 수 있습니다.\ pset명령 줄에서. 주목하십시오 여기서는 동일한 부호로 이름과 가치를 분리해야합니다. 공간 대신. 따라서 출력 형식을 라텍스로 설정하려면 당신은 쓸 수 있습니다-p format = latex.

-Q

지정윈 토토조용히 작업해야합니다. 기본적으로 환영받는 인쇄물 메시지 및 다양한 정보 출력. 이 옵션 인 경우 사용되지 않으면이 중 어느 것도 일어나지 않습니다. 이것은에 유용합니다.-c옵션. 이내에윈 토토당신도를 설정할 수 있습니다조용한동일한 효과를 달성하기위한 변수.

-r,-record-separator분리기

use분리기레코드 분리기. 이것은에 해당합니다.\ pset recordsep명령.

-s, --- single-step

단일 단계 모드에서 실행됩니다. 즉, 사용자에게 프롬프트가 나타납니다 각 쿼리가 백엔드로 전송되기 전에 실행을 취소하십시오. 이것을 사용하여 스크립트를 디버그하십시오.

-s, --- single-line

Newline이 종료되는 단일 라인 모드에서 실행됩니다 세미콜론처럼 쿼리.

참고 :이 모드는 주장하는 사람들을 위해 제공됩니다 그것에, 그러나 당신은 반드시 그것을 사용하도록 권장되는 것은 아닙니다. ~ 안에 특히, 믹스SQL및 한 줄의 메타 명령 실행 순서는 경험이없는 사용자에게 항상 분명합니다.

-t,-튜플 전용

열 이름 및 결과 행 카운트의 인쇄 끄기 바닥 글 등은와 완전히 같습니다.\ tMeta-Command.

-t,-table-attrtable_options

내에 배치 할 옵션을 지정할 수 있습니다html 테이블태그. 보다\ pset자세한 내용.

-u

makes윈 토토프롬프트 데이터베이스에 연결하기 전에 사용자 이름 및 비밀번호.

이 옵션은 개념적으로 결함이 있기 때문에 더 이상 사용되지 않습니다. (비 디폴트 사용자 이름을 제기하고 백엔드가 필요하기 때문에 비밀번호는 실제로 2이기 때문입니다 다른 것들.) 당신은를 보도록 권장됩니다.-u-w옵션 대신.

-u, --username사용자 이름

사용자로서 데이터베이스에 연결사용자 이름53328_53408

-v, -variable,-세트과제

와 같은 변수 할당을 수행합니다.\ set내부 명령. 당신은해야합니다 별도의 이름과 값은 명령 줄. 변수를 설정하지 않으려면 동일한 부호를 꺼냅니다. 이 과제는 매우 초기 상태에서 수행됩니다. 스타트 업이므로 내부 목적으로 예약 된 변수가있을 수 있습니다 나중에 덮어 쓰기.

-v, --version

표시윈 토토버전.

-w,--password

요청윈 토토데이터베이스에 연결하기 전에 비밀번호를 자랑합니다. 이것 변경하더라도 전체 세션에 대한 설정을 유지합니다. 메타 명령과의 데이터베이스 연결\ connect.

버전 7.0,윈 토토백엔드가있을 때마다 비밀번호 프롬프트를 자동으로 발행합니다 암호 인증을 요청합니다. 이것은 현재이기 때문에 "해킹"을 기반으로 자동 인식이있을 수 있습니다 신비하게 실패 하므로이 옵션은 프롬프트를 강제합니다. 아니오 비밀번호 프롬프트가 발행되고 백엔드에는 비밀번호가 필요합니다 인증 연결 시도가 실패합니다.

-x, -expanded

확장 행 형식 모드를 켭니다. 이것은 동일합니다 명령\ x.

-x,-no-psqlrc

시작 파일을 읽지 마십시오~/.윈 토토rc.

-?,-help

도움말 표시윈 토토명령 줄 인수.

고급 기능

변수

윈 토토변수를 제공합니다 대체 기능은 일반적인 UNIX 명령 쉘과 유사합니다. 이 기능은 새롭고 매우 정교하지는 않지만 미래에 그것을 확장 할 계획입니다. 변수는 간단합니다 이름/값 쌍, 값은 어떤 문자열이든 길이. 변수를 설정하려면를 사용하십시오.윈 토토Meta-Command\ set:

testdb =\ set foo bar
변수 "foo"를 "bar"값으로 설정합니다. 검색하려면 변수의 내용은 결장의 이름보다 우선하고 사용하십시오. 슬래시 명령의 주장 :
testdb =\ echo : foobar

참고 :의 인수\ set다른 것과 동일한 대체 규칙이 적용됩니다. 명령. 따라서 당신은 그런 흥미로운 참고 문헌을 구성 할 수 있습니다 처럼\ set : foo 'something'"소프트 링크"또는 "변수 변수"의Perl또는PHP명성. 불행히도 (또는 다행히도?) 할 수있는 방법이 없습니다 이 구성에 유용한 것. 반면에,\ set bar : foo는 완벽하게 유효합니다 변수를 복사하는 방법.

전화하면\ set1 초없이 인수, 변수는 단순히 설정되지만 값은 없습니다. 에게 변수를 설정하지 않거나 삭제하고 명령 사용\ unset.

윈 토토의 내부 변수 이름은 문자, 숫자 및 밑줄로 구성 될 수 있습니다. 주문 및 그 숫자. 여러 정규 변수가 있습니다 특별히 치료윈 토토. 변경할 수있는 특정 옵션 설정을 나타냅니다. 변수의 값을 변경하여 런타임 또는 일부를 나타냅니다. 응용 프로그램 상태. 이 변수를 사용할 수 있지만 다른 목적으로는 프로그램이 권장되지 않습니다. 행동이 정말로 빨리 이상해 질 수 있습니다. 에 의해 컨벤션, 특별히 처리 된 모든 변수는 모두로 구성됩니다 상부 문자 (및 숫자 및 밑줄). 에게 미래의 최대 호환성을 보장하고 피하십시오 변수. 특별히 처리 된 모든 변수 목록 다음은 다음과 같습니다.

dbname

현재 연결된 데이터베이스의 이름입니다. 데이터베이스에 연결할 때마다 설정됩니다 (포함 프로그램 시작)이지만 rets가 될 수 있습니다.

echo

"로 설정된 경우all”, 모든 줄 입력되거나 스크립트에서 표준 출력에 기록됩니다. 그들이 구문 분석되거나 처형되기 전에. 이를 지정합니다 프로그램 시작, 스위치 사용-a. "로 설정된 경우쿼리”, 윈 토토단지 모든 쿼리를 인쇄합니다 백엔드로 전송됩니다. 이것의 옵션은입니다.-e.

echo_hidden

이 변수가 설정되고 BackSlash 명령이있을 때 데이터베이스를 쿼리하면 쿼리가 먼저 표시됩니다. 이런 식으로 당신은 공부할 수 있습니다Postgres내부 및 유사한 기능을 제공합니다 프로그램. 변수를 "noExec"값으로 설정하면 쿼리는 방금 표시되지만 실제로는 전송되지 않습니다. 백엔드 및 실행.

인코딩

현재 클라이언트 멀티 바이트 인코딩. 당신이 아닌 경우 멀티 바이트 문자를 사용하도록 설정하면이 변수는 의지합니다 항상 "sql_ascii"를 포함합니다.

histControl

이 변수가 설정된 경우IGNORESPACE, 공간으로 시작하는 선 역사 목록에 입력되지 않습니다. 값으로 설정된 경우무시, 일치하는 선 이전의 역사 선은 입력되지 않았습니다.INGOREBOTH두 가지를 결합합니다 옵션. 설정이 없거나 그 이외의 다른 값으로 설정된 경우 위의 모든 라인은 대화식 모드에서 저장됩니다. 역사 목록.

참고 :이 기능은 뻔뻔스럽게 표절되었습니다 에서bash.

histsize

명령 기록에 저장할 명령 수. 기본값은 500입니다.

참고 :이 기능은 뻔뻔스럽게 표절되었습니다 에서bash.

호스트

현재 연결된 데이터베이스 서버 호스트입니다. 데이터베이스에 연결할 때마다 설정됩니다 (포함 프로그램 시작)이지만 rets가 될 수 있습니다.

INGOREEOF

UNSET 인 경우 EOF 문자를 보내기 (일반적으로 Control-D) 대화식 세션에윈 토토응용 프로그램을 종료합니다. 숫자 값으로 설정된 경우 많은 EOF 문자가 응용 프로그램이 종료되기 전에 무시됩니다. 변수 인 경우 설정되었지만 숫자 값은없고 기본값은 10입니다.

참고 :이 기능은 뻔뻔스럽게 표절되었습니다 에서bash.

Lastoid

마지막 영향을받는 OID의 값은삽입또는lo_insertCOMMMAND. 이 변수는 전용입니다 다음의 결과가 끝날 때까지 유효합니다SQL명령이 있습니다 표시.

lo_transaction

사용하는 경우Postgres대형 객체 인터페이스를 특수하게 저장하는 데이터 하나의 튜플에 맞지 않으면 모든 작업은 트랜잭션 블록에 포함됩니다. (문서를 참조하십시오 더 많은 정보를위한 큰 객체 인터페이스.) 이후윈 토토당신은 이미 전화 할 때 진행중인 거래가 있습니다. 내부 명령 중 하나\ lo_export, \ lo_import, \ lo_unlink임의의 조치를 취해야합니다. 이 행동은 할 수 있습니다 이미 할 수있는 거래를 롤백하는 것입니다. 진행 중이거나 그러한 거래를 저 지르거나 전혀 아무것도 없습니다. 마지막 경우 자신의 것을 제공해야합니다트랜잭션 시작/커밋블록 또는 결과가있을 것입니다 예측할 수없는 (일반적으로 원하는 행동이 발생합니다 어떤 경우에도 수행되지 않음).

원하는 것을 선택하려면이 변수를 설정하십시오. "롤백", "커밋"또는 "아무것도"중 하나입니다. 기본값은입니다 거래를 롤백합니다. 하나만로드하고 싶다면 또는 몇 가지 물체는 괜찮습니다. 그러나 의도한다면 많은 큰 물체를 전송하면 권장 될 수 있습니다 모든 주변에 하나의 명시적인 트랜잭션 블록을 제공하십시오 명령.

on_error_stop

기본적으로, 비 중 활성 스크립트가 발생하는 경우 기형과 같은 오류SQL쿼리 또는 내부 메타 명령, 처리가 계속됩니다. 이것 의 전통적인 행동이었습니다.윈 토토그러나 때로는 그렇지 않습니다 바람직한. 이 변수가 설정되면 스크립트 처리가됩니다 즉시 종료됩니다. 스크립트가 호출 된 경우 또 다른 스크립트는 같은 방식으로 종료됩니다. 만약에 가장 바깥 스크립트는 대화식에서 호출되지 않았습니다윈 토토세션이 아니라 오히려 사용 사용-f옵션,윈 토토오류를 반환합니다 코드 3,이 사례를 치명적인 오류와 구별합니다 조건 (오류 코드 1).

포트

현재 현재 데이터베이스 서버 포트 연결. 데이터베이스에 연결할 때마다 설정됩니다. (프로그램 스타트 업 포함)이지만

prompt1, Prfust2, 프롬프트 3

이들은 프롬프트를 지정합니다윈 토토문제는 모양이되어야합니다. 보다 "프롬프트” 아래에.

조용한

이 변수는 명령 줄 옵션과 동일합니다-Q. 아마도 그렇지 않을 것입니다 대화식 모드에서 유용합니다.

단일 라인

이 변수는 명령 줄 옵션에 의해 설정됩니다-s. 당신은 그것을 설정하지 않거나 재설정 할 수 있습니다 런 타임에.

Singlestep

이 변수는 명령 줄 옵션과 동일합니다-s.

사용자

현재 연결된 데이터베이스 사용자입니다. 이것 데이터베이스에 연결할 때마다 설정됩니다 (포함 프로그램 시작)이지만 rets가 될 수 있습니다.

SQL보간

추가 유용한 기능윈 토토변수는 대체 할 수 있다는 것입니다 (“보간”) 정기적으로SQL진술. 이것에 대한 구문은 다시입니다 변수 이름을 결장으로 전제하려면 (:).

testdb =\ set foo 'my_table'testdb =선택 *에서 : foo;
그런 다음 테이블을 쿼리합니다my_table. 변수의 값은 문자 그대로 복사되므로 불균형 인용문 또는 백 슬래시 명령을 포함합니다. 당신은 확인해야합니다 당신이 그것을 어디에 두는 지 말이됩니다. 가변 보간이 될 것입니다 인용문으로 수행되지 않음SQL엔티티.

이 시설의 인기있는 응용 프로그램은 마지막 삽입OID후속 외국 키 시나리오를 구축하기위한 진술. 또 다른 가능한 용도 이 메커니즘은 파일의 내용을 필드. 먼저 파일을 변수에로드 한 다음 위에.

testdb =\ set content '\' '`cat my_file.txt`'\ ''testdb =my_table 값에 삽입 (: content);
이 접근법의 한 가지 가능한 문제는입니다.my_file.txt단일이 포함될 수 있습니다 인용 부호. 그들이 원인이되지 않도록 탈출해야합니다. 구문 오류 세 번째 줄이 처리 될 때. 이것은 될 수 있습니다 프로그램으로 완료sed:
testdb =\ set content`sed -e "s/'/\\\\\\'/g"<my_file.txt`
올바른 백 슬래시 수를 관찰하십시오 (6)! 당신은 할 수 있습니다 이런 식으로 해결하십시오 : 후윈 토토이 라인을 구문 분석했습니다. 통과합니다sed -e "s/'/\\\'/g"<my_file.txt쉘에. 껍질은 할 것입니다 이중 인용문 내부에있는 것은sed인수와 함께-es/'/\\'/g. 언제sed이것을 구문 분석하면 두 가지를 대체합니다 하나의 백 슬래시를 하나로 묶은 다음 대체를 수행합니다. 아마도 어느 시점에서 모든 UNIX 명령이 사용하는 것이 좋다고 생각했습니다. 같은 탈출 캐릭터. 그리고 이것은 당신이 사실을 무시하고 있습니다 이기 때문에 모든 백 슬래시를 피해야 할 수도 있습니다.SQL텍스트 상수도 있습니다 특정 해석에 따라. 이 경우 당신은 그럴 수도 있습니다 외부에서 파일 준비가 더 좋습니다.

콜론은 합법적으로 쿼리에 표시 될 수 있으므로 다음은 다음과 같습니다 규칙이 적용됩니다 : 변수가 설정되지 않으면 문자 시퀀스 "콜론+이름"은 변경되지 않았습니다. 어쨌든 당신은 할 수 있습니다 백 슬래시로 결장을 피하기 위해 해석. (변수의 콜론 구문은 표준입니다SQL내장 쿼리 언어의 경우, 와 같은ECPG. 결장 구문 배열 슬라이스 및 유형 캐스트의 경우Postgres확장, 따라서 갈등.)

​​프롬프트

프롬프트윈 토토문제가 가능합니다 선호도에 맞게 사용자 정의하십시오. 세 변수프롬프트 1, Prust2, 그리고프롬프트 3현악기와 특수를 포함합니다 프롬프트의 모양을 설명하는 탈출 시퀀스. 프롬프트 1은에 발행되는 일반 프롬프트입니다.윈 토토새 쿼리를 요청합니다. 프롬프트 2입니다 쿼리 입력 중에 더 많은 입력이 예상 될 때 발행됩니다. 쿼리는 세미콜론으로 종료되지 않았거나 인용문은 닫히지 않습니다. 프롬프트 3이 실행될 때 발행됩니다SQL COPY명령 및 터미널의 튜플을 입력해야합니다.

각 프롬프트 변수의 값이 인쇄됩니다 말 그대로, 퍼센트 부호 ( "%")가 발생하는 경우를 제외하고. 다음 문자에 따라 다른 텍스트는 있습니다 대신 대체되었습니다. 정의 된 대체는 다음과 같습니다.

%m

데이터베이스의 전체 호스트 이름 (DomainName) 서버 (또는 호스트 이름 정보가없는 경우 "로컬 호스트" 사용 가능).

%m

데이터베이스 서버의 호스트 이름은 다음과 같습니다 첫 번째 도트.

%

데이터베이스 서버가있는 포트 번호 청취.

%n

귀하가 연결된 사용자 이름 (로컬 시스템이 아님 사용자 이름).

%/

현재 데이터베이스의 이름.

%~

좋아요%/그러나 출력은 "~"입니다. (tilde) 데이터베이스가 기본 데이터베이스 인 경우

%#

현재 사용자가 데이터베이스 수퍼 유행기 인 경우 "#", 그렇지 않으면 "".

%r

프롬프트 1 정상 "="이지만 단일 라인에있는 경우 "^" 모드, "!" 세션이에서 분리 된 경우 데이터베이스 (이 경우 발생할 수 있습니다\ connect실패). 프롬프트 2에서 시퀀스는입니다 "-", "*", 단일 인용문 또는 이중 인용문으로 대체되었습니다. 에 따라윈 토토쿼리가 아직 종료되지 않았기 때문에 더 많은 입력을 기대합니다. 당신은 내부에 있기 때문에/* ... */댓글이 있거나 인용문 안에 있기 때문입니다. 프롬프트 3에서 시퀀스는 아무것도 해결되지 않습니다.

%숫자

if숫자시작0x나머지 캐릭터는입니다 16 진수 숫자와 캐릭터로 해석됩니다 해당 코드가 부착되어 있습니다. 첫 번째 숫자가 인 경우0캐릭터는 해석됩니다 문어 번호와 해당 문자는 다음과 같습니다 대체. 그렇지 않으면 소수점 번호가 가정됩니다.

%:이름:

윈 토토, 변하기 쉬운이름. 참조 부분 "변수” ~을 위한 세부.

%`명령`

출력명령, 일반적인 "백 틱"대체와 유사합니다.

프롬프트에 백분율 부호를 삽입하려면 쓰기%%. 기본 프롬프트는 동일합니다 에게'%/%r%#'프롬프트 1과 2 및''프롬프트 3.

참고 :이 기능은 뻔뻔스럽게 표절되었습니다TCSH.

기타

윈 토토0을 쉘로 반환합니다 정상적으로 완료된 경우 1 자체의 치명적인 오류 인 경우 ( 메모리, 파일을 찾을 수 없음) 발생, 2 백엔드가 나빠지고 세션은 대화식이 아니며 3 스크립트와 변수에서 오류가 발생했습니다on_error_stop설정되었습니다.

​​시작하기 전,윈 토토파일에서 명령을 읽고 실행하려는 시도$ home/.윈 토토rc. 설정하는 데 사용될 수 있습니다 클라이언트 또는 맛을위한 서버 ( 사용\ setSET명령).

gnuReadline

윈 토토읽기를 지원합니다 편리한 라인 편집을위한 역사 라이브러리 및 검색. 명령 기록은라는 파일에 저장됩니다..psql_history홈 디렉토리에서 그리고에 다시로드 됨윈 토토시작합니다. 탭 완성이 지원되지만 완료 논리는 주장하지 않는다SQL파서. 가능한 경우윈 토토75408_75576.inputrc홈 디렉토리 :

$ psql
비활성화 완성을 설정하십시오
$ endif
윈 토토그러나 aReadline기능. 읽으십시오 자세한 내용은 설명서입니다.)

READLINE 라이브러리가 설치되어 있지만윈 토토그것을 사용하지 않는 것 같습니다 확인하십시오Postgres's 최상위구성스크립트 찾기.구성두 가지를 모두 찾아야합니다 도서관libreadline.a(또는 공유 도서관 동등성)헤더 파일readline.hhistory.h(또는readline/readline.hReadline/history.h) 적절한 디렉토리. 라이브러리와 헤더 파일이 설치된 경우 당신이 말해야 할 모호한 장소구성예를 들어 다음과 같습니다.

$ ./configure-with-includes =/opt/gnu/include-with-libs =/opt/gnu/lib ...
그러면 다시 컴파일해야윈 토토(반드시 전체 코드 트리는 아닙니다).

thegnuReadline 라이브러리가 될 수 있습니다 에서 얻은gnu프로젝트ftp서버 atftp : //ftp.gnu.org.

예제

참고 :이 섹션에는 몇 가지 예제 만 표시됩니다 에게윈 토토. 배우고 싶다면SQL또는 익숙해지기Postgres, 원할 수도 있습니다 배포에 포함 된 자습서를 읽으십시오.

첫 번째 예제는 여러에 쿼리를 뿌리는 방법을 보여줍니다. 입력 라인. 변경 프롬프트를 확인하십시오.

testdb =테이블 작성 my_table (testdb-첫 번째 정수 null 기본값 0,testdb-두 번째 텍스트testdb-);생성
이제 테이블 정의를 다시보십시오 :
testdb =\ d my_table테이블 "my_table"
 속성 |  유형 |      수정 자
-----------+--------+-----------------------
 첫 번째 | 정수 | null 기본값 0이 아닙니다
 두 번째 | 텍스트 |
이 시점에서 프롬프트를 무언가로 변경하기로 결정합니다. 더 흥미로운 점 :
testdb =\ set prompt1 '%n@%m%~%r%#'Peter@localhost testdb =
데이터로 테이블을 채웠고 봐 :
peter@localhost testdb = select * from my_table;
 첫 번째 | 두번째
-------+--------
     1 | 하나
     2 | 둘
     3 | 삼
     4 | 네
(4 줄)
텍스트 중에 int4 colum이 오른쪽에 어떻게 정렬되었는지 주목 왼쪽의 열이 정렬되었습니다. 이 테이블을 다르게 보이게 할 수 있습니다 사용 사용\ pset명령.
Peter@localhost testdb =\ pset border 2국경 스타일은 2입니다.
Peter@localhost testdb =선택 *에서 my_table;+-------+--------+
| 첫 번째 | 두 번째 |
+-------+--------+
|     1 | 하나 |
|     2 | 두 |
|     3 | 세 |
|     4 | 4 |
+-------+--------+
(4 줄)

Peter@localhost testdb =\ pset 테두리 0국경 스타일은 0입니다.
Peter@localhost testdb =선택 *에서 my_table;첫 번째 초
----- ------
    1
    2 둘
    3 세
    4 4
(4 줄)

Peter@localhost testdb =\ pset 테두리 1국경 스타일은 1입니다.
Peter@localhost testdb =\ PSET 형식이 정렬되지 않은 형식출력 형식은 정렬되지 않았습니다.
Peter@localhost testdb =\ pset FieldSep ","필드 분리기는 ",".
Peter@localhost testdb =\ pset tuples_only튜플 만 보여줍니다.
Peter@localhost testdb =My_table에서 첫 번째, 첫 번째 선택;하나, 1
둘, 2
3, 3
4, 4
또는 짧은 명령을 사용하십시오 :
Peter@localhost testdb =\ a \ t \ x출력 형식이 정렬되었습니다.
튜플은 꺼져 있습니다.
확장 된 디스플레이가 켜져 있습니다.
Peter@localhost testdb =선택 *에서 my_table;-[레코드 1]-
첫 번째 | 1
두 번째 | 하나
-[레코드 2]-
첫 번째 | 2
두 번째 | 둘
-[레코드 3]-
첫 번째 | 3
두 번째 | 삼
-[레코드 4]-
첫 번째 | 4
두 번째 | 네

부록

버그 및 문제

  • 일부 초기 생애윈 토토첫 번째 인수를 허용했습니다 (단일 레터) 명령 직후에 시작하십시오. 을 위한 호환성 이것은 여전히 ​​어느 정도 뒷받침되지만 나는 이 용도는 여기에 세부 사항을 설명하지 않을 것입니다. 낙담했습니다. 그러나 이상한 메시지를 받으면 이것을 유지하십시오 정신. 예를 들어

    testdb =\ foo필드 분리기는 "oo"입니다.
    아마도 기대할 수있는 것이 아닐 것입니다.
  • 윈 토토Smootly 만 작동합니다 동일한 버전의 서버가 있습니다. 그렇다고해서 다른 의미는 아닙니다 조합은 완전히 실패하지만 미묘하고 너무 쓸데없는 문제가 발생할 수 있습니다.

  • “Copy In”중에 Control-C를 누르십시오 ( 서버)는 행동의 가장 이상적인 것을 보여주지 않습니다. 당신이 “pqexec : 당신은 사본에서 벗어나야합니다. 자신을 진술하십시오.”, 간단히 입력하여 연결을 재설정하십시오\ c - -.