지원되는 버전:현재 (18) / 17 / 16 / 15 / 14 / 13
개발 버전:개발
지원되지 않는 버전:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

윈 토토

이름

윈 토토 -- 포스트그레대화형 터미널

시놉시스

윈 토토 [옵션 ] [ DB이름 [ 사용자 ] ]

요약

윈 토토터미널 기반입니다. 프런트엔드에서포스트그레. 그것 대화형으로 쿼리를 입력하고 발행할 수 있습니다.포스트그레, 쿼리를 확인하세요. 결과. 또는 파일에서 입력할 수도 있습니다. 또한, 다수의 메타 명령과 다양한 셸 유사 기능을 제공합니다. 스크립트 작성을 용이하게 하고 다양한 작업을 자동화하는 기능 다양한 작업을 수행합니다.

설명

데이터베이스에 연결 중

윈 토토단골입니다포스트그레스클라이언트 애플리케이션. 데이터베이스에 연결하려면 데이터베이스 이름을 알아야 합니다. 대상 데이터베이스, 호스트 이름 및 포트 번호 서버 및 연결하려는 사용자 이름.윈 토토해당 매개변수에 대해 알 수 있습니다. 명령줄 옵션을 통해, 즉-d, -h, -p-U각각. 인수가 다음과 같은 경우 어떤 옵션에도 속하지 않는 것으로 확인되면 해석됩니다. 데이터베이스 이름(또는 데이터베이스 이름이 다음과 같은 경우 사용자 이름) 도 주어진다). 이러한 옵션이 모두 필요한 것은 아니며 기본값은 필수입니다. 적용하십시오. 호스트 이름을 생략하면 윈 토토은 Unix를 통해 연결됩니다. 로컬 호스트의 서버에 대한 도메인 소켓입니다. 기본 포트 숫자는 컴파일 타임에 결정됩니다. 데이터베이스 서버부터 동일한 기본값을 사용하므로 포트를 지정할 필요가 없습니다. 대부분의 경우. 기본 사용자 이름은 그대로 Unix 사용자 이름입니다. 기본 데이터베이스 이름. 단지 연결할 수는 없습니다. 모든 사용자 이름 아래의 모든 데이터베이스. 데이터베이스 관리자 귀하의 액세스 권한에 대해 알려드렸어야 했습니다. 당신을 구하기 위해 일부 입력을 통해 환경 변수를 설정할 수도 있습니다.PGDATABASE, PGHOST, PGPORT그리고PGUSER적절한 값으로.

어떤 이유로든 연결이 이루어질 수 없는 경우(예: 권한이 부족하여 포스트마스터가 실행되고 있지 않습니다. 서버 등),윈 토토할 것이다 오류를 반환하고 종료합니다.

쿼리 입력

정상 작동 시,윈 토토데이터베이스 이름이 포함된 프롬프트를 제공윈 토토현재 연결되어 있습니다. 그 뒤에 문자열 "="이 옵니다. 예를 들어,

$ 윈 토토 테스트dbPostgreSQL 대화형 터미널인 윈 토토에 오신 것을 환영합니다.

유형: 배포 조건의 경우 \copyright
       SQL 명령에 대한 도움말은 \h
       \? 내부 슬래시 명령에 대한 도움말
       \g 또는 세미콜론으로 종료하여 쿼리 실행
       종료하려면 \q

테스트DB=

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

쿼리가 실행될 때마다윈 토토또한 비동기식 폴링 에 의해 생성된 알림 이벤트듣기그리고알림.

윈 토토메타 명령

귀하가 입력하는 모든 것윈 토토따옴표가 없는 백슬래시로 시작하는 것은 a윈 토토다음에 의해 처리되는 메타 명령윈 토토그 자체. 이러한 명령은 무엇이 만드는가윈 토토흥미로운 관리 또는 스크립팅. 메타 명령이 더 일반적입니다. 슬래시 또는 백슬래시 명령이라고 합니다.

a의 형식윈 토토명령 백슬래시이고 바로 뒤에 명령 동사가 옵니다. 어떤 주장. 인수는 명령 동사와 분리됩니다. 공백 문자 수에 관계없이 서로.

인수에 공백을 포함하려면 다음과 같이 인용해야 합니다. 작은 따옴표. 이러한 인수에 작은따옴표를 포함하려면, 백슬래시를 앞에 붙입니다. 작은따옴표 안에 포함된 모든 내용은 다음과 같습니다. 또한 C와 유사한 대체가 적용됩니다.\n(새 줄),\t(탭),\숫자, \0숫자\0x숫자( 주어진 10진수, 8진수, 16진수를 가진 문자 코드).

따옴표가 없는 인수가 콜론()으로 시작하는 경우:), 변수로 사용되며 대신 변수가 인수로 사용됩니다.

인용된 인수"백틱" (`)이 촬영되었습니다. 쉘에 전달되는 명령줄로. 의 출력 명령(후행 개행 문자가 제거됨)은 다음과 같이 사용됩니다. 인수 값. 위의 이스케이프 시퀀스는 다음에도 적용됩니다. 백틱.

일부 명령은 다음의 이름을 가집니다.SQL식별자(예: 테이블 이름) 논쟁. 이러한 인수는 다음의 구문 규칙을 따릅니다.SQL큰따옴표에 관하여: 식별자 큰따옴표가 없으면 소문자로 강제됩니다. 기타 모든 경우 명령 큰따옴표는 특별하지 않으며 다음의 일부가 됩니다. 주장.

따옴표가 없는 다른 백슬래시가 있으면 인수 구문 분석이 중지됩니다. 발생합니다. 이는 새로운 메타 명령의 시작으로 간주됩니다. 는 특수 시퀀스\\(백슬래시 2개) 인수의 끝을 표시하고 구문 분석을 계속합니다.SQL쿼리(있는 경우). 그런 식으로SQL그리고윈 토토명령은 한 줄에서 자유롭게 혼합될 수 있습니다. 그러나 어쨌든, 메타 명령의 인수는 명령의 끝을 넘어 계속될 수 없습니다. 라인.

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

\a

현재 테이블 출력 형식이 정렬되지 않은 경우 전환 정렬합니다. 정렬되지 않은 경우 정렬되지 않은 상태로 설정합니다. 이 명령은 이전 버전과의 호환성을 위해 유지됩니다. 참조\pset일반 솔루션의 경우.

\C [ 제목 ]

결과로 인쇄되는 테이블의 제목 설정 검색어를 삭제하거나 해당 제목을 설정 해제합니다. 이 명령은 에 해당함\pset 제목제목. (이 명령의 이름은 에서 파생됨"캡션"그대로 이전에는에서 캡션을 설정하는 데에만 사용되었습니다.HTML테이블.)

\연결(또는\c) [ db이름 [ 사용자 이름 ] ]

새 데이터베이스 및/또는 아래에 연결을 설정합니다. 사용자 이름. 이전 연결이 닫혔습니다. 만일db이름is-현재 데이터베이스 이름이 가정됩니다.

만약사용자 이름생략됨 현재 사용자 이름이 가정됩니다.

특별한 규칙으로,\연결인수 없이 기본 데이터베이스에 연결됩니다 기본 사용자로(시작하여 얻은 대로)윈 토토아무것도 없이 인수).

연결 시도가 실패하면(잘못된 사용자 이름, 액세스 거부 등), 다음과 같은 경우 이전 연결이 유지됩니다. 경우에만윈 토토다음에 있음 대화형 모드. 비대화형 스크립트를 실행할 때, 오류가 발생하면 처리가 즉시 중지됩니다. 이 오타 방지를 위해 사용자 편의를 위해 구별을 선택했습니다. 한편으로는 스크립트라는 안전 메커니즘이 있습니다. 실수로 다른 데이터베이스의 잘못된 데이터베이스에 작업을 수행하지 않음 손.

\복사 테이블 [ 와 함께 oids ] { from | } 파일 이름| 표준 입력 | 표준출력 [구분자 사용 '문자' ] [ null 포함 '문자열' ]

프런트엔드(클라이언트) 복사를 수행합니다. 이것은 작업입니다 그 실행은SQL PostgreSQL : 문서 : 7.1 : 토토 사이트명령이지만 대신 백엔드가 지정된 파일을 읽거나 쓰는 경우 결과적으로 백엔드 액세스 및 특수 사용자가 필요합니다. 권한이 있을 뿐만 아니라 파일 시스템에 바인딩됩니다. 백엔드에서 액세스할 수 있습니다.윈 토토파일을 읽거나 쓰고 그리고 백엔드와 로컬 파일 간에 데이터 라우팅 시스템.

명령어의 구문은 다음의 구문과 유사합니다.SQL 복사명령(다음에 대한 설명 참조) 세부 사항). 이 때문에 특별한 구문 분석 규칙이 적용됩니다. 에 적용하다\복사명령. 에서 특히, 변수 대체 규칙과 백슬래시 이스케이프는 적용되지 않습니다.

팁:이 작업은 다음보다 효율적이지 않습니다.SQL 복사모든 데이터가 통과해야 하기 때문에 명령 클라이언트/서버 IP 또는 소켓 연결을 통해. 에 대한 많은 양의 데이터가 있으면 다른 기술이 필요할 수 있습니다. 바람직합니다.

참고:해석의 차이에 주목하세요 의표준입력그리고stdout프런트엔드와 백엔드 사이 복사본: 프런트엔드 복사본에서는 항상 다음을 참조합니다.윈 토토의 입력과 출력 스트림. 백엔드 복사본에서표준입력어디서든 온다복사본체는 다음에서 왔습니다(예: 스크립트는로 실행됩니다.-f옵션), 그리고stdout쿼리를 참조합니다. 출력 스트림(참조\o아래 메타 명령).

\저작권

다음의 저작권 및 배포 조건을 표시합니다.포스트그레스.

\d 관계

다음의 모든 열을 표시합니다관계(테이블일 수도 있고, 뷰, 인덱스 또는 시퀀스), 해당 유형 및 특수 다음과 같은 속성NULL이 아님또는 기본값이 있는 경우. 관계가 실제로 테이블인 경우 정의된 인덱스도 나열됩니다. 관계가 뷰인 경우 뷰 정의도 표시됩니다.

명령 형식\d+이다 동일하지만 테이블과 관련된 모든 주석 열도 표시됩니다.

참고:만약\d이라고 합니다 인수가 없으면 다음과 같습니다.\dtvs모든 목록이 표시됩니다. 테이블, 뷰, 시퀀스. 이것은 순전히 편의 조치입니다.

\da [ 패턴 ]

사용 가능한 모든 집계 함수를 나열합니다. 그들이 작동하는 데이터 유형. 만일패턴(정규 표현식)은 지정하면 일치하는 집계만 표시됩니다.

\dd [ 객체 ]

다음에 대한 설명을 표시합니다객체(일반 표현식) 또는 인수가 제공되지 않은 경우 모든 객체에 적용됩니다. ("개체"집계를 다루고, 함수, 연산자, 유형, 관계(테이블, 뷰, 인덱스, 시퀀스, 대형 개체), 규칙 및 트리거.) 예를 들면:

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

객체에 대한 설명은 다음을 사용하여 생성될 수 있습니다.댓글 켜기 SQL명령.

참고: 포스트그레스객체를 저장합니다 pg_description 시스템 테이블의 설명입니다.

\df [패턴 ]

사용 가능한 함수를 해당 인수와 함께 나열합니다. 및 반환 유형. 만일패턴(정규 표현식)은 지정하면 일치하는 함수만 표시됩니다. 양식인 경우\df+사용됨, 추가 언어를 포함한 각 기능에 대한 정보 설명이 표시됩니다.

\distvS [패턴 ]

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

만약패턴지정되었습니다. 목록을 다음으로 제한하는 정규식입니다. 이름이 일치하는 개체입니다. 하나를 추가하면"+"명령 이름에 각각 객체는 연관된 설명과 함께 나열됩니다. 뭐든지.

\dl

이것은 다음의 별칭입니다.\lo_list, 이는 대형 개체 목록을 보여줍니다.

\do [이름 ]

사용 가능한 연산자를 피연산자 및 반환값과 함께 나열합니다. 유형. 만일이름이다 지정하면 해당 이름을 가진 연산자만 표시됩니다.

\dp [ 패턴 ]

이것은 다음의 별칭입니다.\z이것은 더 큰 니모닉 값으로 인해 포함됨("표시 권한").

\dT [패턴 ]

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

\편집(또는\e) [ 파일 이름 ]

만약파일 이름이다 지정하면 파일이 편집됩니다. 편집기가 종료된 후 콘텐츠는 쿼리 버퍼에 다시 복사됩니다. 인수가 없으면 이 주어지면 현재 쿼리 버퍼가 임시 버퍼에 복사됩니다. 파일은 동일한 방식으로 편집됩니다.

새 쿼리 버퍼는 다음에 따라 다시 구문 분석됩니다. 일반적인 규칙윈 토토, 여기서 전체 버퍼는 단일 라인으로 처리됩니다. (그러므로 이런 식으로 스크립트를 만들 수는 없습니다. 사용\i그것을 위해.) 이는 또한 쿼리가 세미콜론으로 끝나는 경우(또는 포함하는 경우) 즉시 실행됨. 다른 경우에는 단지 기다릴 것입니다. 쿼리 버퍼입니다.

팁: 윈 토토환경 변수를 검색합니다.PSQL_EDITOR, 편집자영상(순서대로) 편집자가 사용할 수 있습니다. 만약 그들 모두 설정되지 않았습니다./bin/vi이다 달려라.

\에코 텍스트 [ ... ]

인수를 표준 출력으로 구분하여 인쇄합니다. 공백 하나 뒤에 개행 문자가 옵니다. 이것은 유용할 수 있습니다 스크립트 출력에 정보를 삽입합니다. 에 대한 예:

=\echo `날짜`화 10월 26일 21:40:57 CEST 1999
첫 번째 인수가 인용되지 않은 경우-n후행 줄 바꿈은 작성되지 않습니다.

팁:다음을 사용하는 경우\o원하는 쿼리 출력을 리디렉션하는 명령 사용\qecho이것 대신에 명령.

\인코딩 [ 인코딩 ]

멀티바이트를 사용하는 경우 클라이언트 인코딩을 설정합니다. 인코딩. 인수 없이 이 명령은 다음을 보여줍니다. 현재 인코딩.

\f [ 문자열 ]

정렬되지 않은 쿼리 출력에 대한 필드 구분 기호를 설정합니다. 는 기본값은 파이프(|). 또한 참조하세요\pset일반적인 설정 방법 출력 옵션.

\g [ { 파일 이름 | |명령 } ]

현재 쿼리 입력 버퍼를 백엔드로 보내고 선택적으로 출력을 다음 위치에 저장합니다.파일 이름또는 출력을 실행할 별도의 Unix 셸명령. 베어\g은 사실상 세미콜론과 동일합니다. 갑\g인수 포함은 a"원샷"대체\o명령.

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

지정된 구문에 대한 도움말 제공SQL명령. 만일명령지정되지 않은 경우윈 토토모든 항목을 나열합니다. 구문 도움말을 사용할 수 있는 명령입니다. 만일명령별표("*"), 그 다음에는 모두에 대한 구문 도움말SQL명령이 표시됩니다.

참고:입력을 단순화하기 위해 다음 명령을 실행합니다. 여러 단어로 구성되어 있으므로 인용할 필요가 없습니다. 따라서 입력해도 괜찮습니다.\도움말 테이블 변경.

\H

켜짐HTML쿼리 출력 형식. 만약HTML형식은 다음과 같습니다 이미 켜져 있으면 기본 정렬 텍스트로 다시 전환됩니다. 형식. 이 명령은 호환성과 편의성을 위한 것입니다. 하지만 보세요\pset기타 설정 정보 출력 옵션.

\i 파일 이름

파일에서 입력을 읽습니다.파일 이름그리고 마치 실행하는 것처럼 키보드로 입력되었습니다.

참고:당신이 그 줄을 보고 싶다면 화면을 읽는 동안 변수를 설정해야 합니다.에코모두.

\l(또는\목록)

서버에 있는 모든 데이터베이스와 그 데이터베이스를 나열합니다. 소유자. 추가하다"+"에 데이터베이스에 대한 설명을 보려면 명령 이름을 사용하세요. 음. 만약 당신의포스트그레설치가 멀티바이트 인코딩 지원으로 컴파일되었습니다. 각 데이터베이스의 인코딩 체계도 표시됩니다.

\lo_export 로이드 파일 이름

다음으로 큰 개체를 읽습니다.OID 로이드데이터베이스에서 가져와서 씁니다.파일 이름. 이건 미묘하니 참고하세요 서버 기능과 다름lo_export, 권한으로 작동 데이터베이스 서버가 실행되는 사용자 서버의 파일 시스템.

팁:사용\lo_list에 대형 객체를 알아보세요.OID.

참고:설명 보기LO_TRANSACTION중요한 변수 모든 대형 개체 작업에 관한 정보입니다.

\lo_import 파일 이름 [ 댓글 ]

파일을 다음에 저장합니다.포스트그레스 "큰 개체". 선택적으로 주어진 댓글을 연결합니다. 개체와 함께. 예:

foo=\lo_import '/home/peter/pictures/photo.xcf' '내 사진'lo_import 152801
응답은 대형 개체가 개체를 수신했음을 나타냅니다. 액세스하려는 경우 ID 152801을 기억해야 합니다. 다시는 반대하지 마세요. 그렇기 때문에 항상 다음을 수행하는 것이 좋습니다. 사람이 읽을 수 있는 주석을 모든 객체와 연결합니다. 그것들은 할 수 있다 그런 다음\lo_list명령.

이 명령은 다음 명령과 미묘하게 다르다는 점에 유의하십시오. 서버측lo_import왜냐하면 대신 로컬 파일 시스템에서 로컬 사용자 역할을 합니다. 서버의 사용자 및 파일 시스템보다.

참고:설명 보기LO_TRANSACTION중요한 변수 모든 대형 개체 작업에 관한 정보입니다.

\lo_list

전체 목록을 표시합니다포스트그레 "큰 개체"현재 데이터베이스에 저장되어 있습니다. 제공된 의견과 함께.

\lo_unlink 로이드

다음으로 큰 개체를 삭제합니다.OID 로이드데이터베이스에서.

팁:사용\lo_list에 대형 객체를 알아보세요.OID.

참고:설명 보기LO_TRANSACTION중요한 변수 모든 대형 개체 작업에 관한 정보입니다.

\o [ {파일 이름 | |명령} ]

향후 쿼리 결과를 파일에 저장파일 이름또는 향후 결과를 다음으로 파이프합니다. 실행할 별도의 Unix 셸명령. 인수가 없으면 지정하면 쿼리 출력이 다음으로 재설정됩니다.stdout.

"쿼리 결과"모두 포함 테이블, 명령 응답 및 통지에서 얻은 데이터베이스 서버 및 다양한 백슬래시 출력 데이터베이스를 쿼리하는 명령(예:\d), 그러나 오류 메시지는 아닙니다.

팁:사이에 텍스트 출력을 삽입하려면 쿼리 결과, 사용\qecho.

\p

현재 쿼리 버퍼를 표준으로 인쇄 출력.

\pset 매개변수 [ ]

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

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

형식

출력 형식을 다음 중 하나로 설정정렬되지 않음, 정렬, html, 또는라텍스. 고유한 약어는 다음과 같습니다. 허용됩니다. (즉, 한 글자면 충분하다는 의미입니다.)

"정렬되지 않음"모두 쓰기 한 줄에 있는 튜플의 필드는 다음과 같이 구분됩니다. 현재 활성 필드 구분 기호입니다. 이는 다음을 위한 것입니다. 에서 읽을 수 있는 출력을 생성합니다. 다른 프로그램(탭으로 구분, 쉼표로 구분)."정렬됨"모드는 표준적이고 사람이 읽을 수 있으며 형식이 좋은 텍스트 기본값으로 출력됩니다."HTML"그리고"LaTeX"모드 꺼짐 문서에 포함할 테이블 해당 마크업 언어를 사용합니다. 그들은 그렇지 않다 완전한 서류! (이것은 그렇게 극적이지 않을 수도 있습니다.)HTML, 하지만 LaTeX에서는 완전한 문서 래퍼가 있어야 합니다.)

경계

두 번째 인수는 숫자여야 합니다. 일반적으로, 숫자가 높을수록 테두리와 선이 많아집니다. 테이블에는 있지만 이는 특정 사항에 따라 다릅니다. 형식. 에서HTML모드, 이는 다음으로 직접 변환됩니다.테두리=...속성, 기타 값만 0(경계 없음), 1(내부 나누기) 행) 및 2(테이블 프레임)가 의미가 있습니다.

확장(또는x)

일반 형식과 확장 형식 사이를 전환합니다. 언제 확장 형식이 활성화되면 모든 출력에는 두 개의 왼쪽에 필드 이름이 있는 열과 데이터 오른쪽에. 이 모드는 데이터가 다음과 같은 경우에 유용합니다. 평소에는 화면에 맞지 않습니다."수평"모드.

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

두 번째 인수는 다음과 같아야 하는 문자열입니다. 필드가 null일 때마다 인쇄됩니다. 기본값은 다음과 같습니다. 쉽게 오해할 수 있는 것을 인쇄하려면 예를 들어, 빈 문자열입니다. 따라서 다음과 같이 작성하는 것을 선택할 수 있습니다.\pset null '(널)'.

fieldsep

다음에 사용할 필드 구분 기호를 지정합니다. 정렬되지 않은 출력 모드. 그렇게 하면 창조할 수 있습니다. 예를 들어 탭 또는 쉼표로 구분된 출력이 있습니다. 프로그램이 선호할 수도 있습니다. 탭을 필드로 설정하려면 구분 기호, 유형\pset 필드ep '\t'. 기본 필드 구분 기호는 다음과 같습니다.'|'(a"파이프"기호).

recordsep

다음에서 사용할 레코드(줄) 구분 기호를 지정합니다. 정렬되지 않은 출력 모드. 기본값은 줄바꿈입니다. 문자.

tuples_only(또는t)

튜플만 표시와 전체 표시 사이를 전환합니다. 전체 디스플레이에는 열과 같은 추가 정보가 표시될 수 있습니다. 머리글, 제목, 다양한 바닥글. 튜플에서만 모드에서는 실제 테이블 데이터만 표시됩니다.

제목 [ 텍스트 ]

이후 인쇄되는 테이블 제목을 설정합니다 테이블. 이것은 출력을 제공하는 데 사용될 수 있습니다 설명 태그. 인수가 제공되지 않으면 제목 설정되지 않았습니다.

참고:이전에는 이것만 영향을 받았습니다.HTML모드. 당신은 할 수 있습니다 이제 모든 출력 형식으로 제목을 설정하세요.

테이블 속성(또는T) [ 텍스트 ]

당신이 배치할 속성을 지정할 수 있습니다 내부HTML 테이블태그. 이것은 예를 들어셀패딩또는bgcolor. 당신은 아마도 지정하고 싶지 않을 것입니다.경계여기서 이미 사용되었으므로 의 보살핌\pset 테두리.

호출기

페이저 목록을 토글하여 테이블 출력을 수행합니다. 만약에 환경 변수호출기이 설정되면 출력이 지정된 프로그램으로 파이프됩니다. 그렇지 않으면더보기사용됩니다.

어쨌든,윈 토토적절하다고 판단되는 경우에만 호출기를 사용합니다. 그 무엇보다도 출력이 다음과 같은 것을 의미합니다. 터미널과 테이블이 일반적으로 맞지 않는다는 점 화면. 모듈식 특성으로 인해 인쇄 루틴이 항상 가능한 것은 아닙니다. 실제로 표시될 줄 수를 예측합니다. 인쇄되었습니다. 그런 이유로윈 토토별로 나타나지 않을 수도 있습니다 호출기를 사용할 시기와 시기를 구별하기 안 돼.

이러한 다양한 형식이 어떻게 보이는지에 대한 그림은 다음에서 볼 수 있습니다.섹션.

팁:다음에 대한 다양한 단축키 명령이 있습니다.\pset. 참조\a, \C, \H, \t, \T\x.

참고:호출하는 데 오류가 있습니다.\pset인수 없음. 미래에는 이 호출은 모든 인쇄의 현재 상태를 표시할 수 있습니다. 옵션.

\q

그만두세요윈 토토프로그램.

\qecho 텍스트 [ ... ]

이 명령은 다음과 동일합니다.\에코단, 모든 출력은 기록됩니다. 다음으로 설정된 쿼리 출력 채널로\o.

\r

쿼리 버퍼를 재설정(삭제)합니다.

\s [ 파일 이름 ]

명령줄 기록을 인쇄하거나 저장하세요.파일 이름. 만일파일 이름생략되었으며 기록은 표준 출력에 기록됩니다. 이 옵션은 다음과 같은 경우에 사용 가능윈 토토이다 를 사용하도록 구성됨GNU역사 도서관.

참고:현재윈 토토버전 7.0은 더 이상 존재하지 않습니다. 명령 기록을 저장하는 데 필요합니다. 프로그램 종료 시 자동으로 수행됩니다. 는 기록도 매번 자동으로 로드됩니다.윈 토토시작합니다.

\세트 [ 이름 [ [ ... ]]]

내부 변수를 설정이름또는 값이 두 개 이상인 경우 주어진, 그들 모두의 연결에. 두 번째가 아니라면 인수가 주어지면 변수는 값 없이 설정됩니다. 변수를 설정 해제하려면를 사용하세요.\unset명령.

유효한 변수 이름에는 문자, 숫자 및 숫자가 포함될 수 있습니다. 밑줄. 관련 섹션을 참조하세요.윈 토토자세한 내용은 변수를 참조하세요.

어떤 변수든 무엇이든 설정할 수 있지만 당신이 원하는,윈 토토대우 여러 변수를 특수하게 사용합니다. 그들은에 문서화되어 있습니다 변수에 관한 섹션입니다.

참고:이 명령은 다음 명령과 완전히 별개입니다.SQL명령젠 토토 PostgreSQL : 문서 : 7.1 : set.

\t

출력 열 이름 제목 표시를 토글하고 행 개수 바닥글. 이 명령은 다음과 같습니다.\pset tuples_only다음에 대해 제공됩니다. 편리함.

\T 테이블_옵션

다음에 배치할 옵션을 지정할 수 있습니다.테이블태그 추가HTML테이블 형식 출력 모드. 이 명령은 에 해당함\pset tableattrtable_options.

\w {파일 이름 | |명령}

현재 쿼리 버퍼를 파일에 출력파일 이름또는 Unix로 파이프 명령명령.

\x

확장된 행 형식 모드를 토글합니다. 말 그대로이다 에 해당함\pset 확장됨.

\z [ 패턴 ]

데이터베이스의 모든 테이블 목록을 생성합니다. 적절한 액세스 권한이 나열됩니다. 인수가 다음과 같은 경우 주어진 것은 다음을 제한하는 정규식으로 간주됩니다. 일치하는 테이블을 나열합니다.

테스트=\z데이터베이스 "test"에 대한 접근 권한
 관계 |           접근 권한
--------+------------
 내 테이블 | "=r","joe=arwR", "그룹 직원=ar"
다음과 같이 읽으십시오:
  • "=r": 공개읽었습니다(선택) 테이블에 대한 권한입니다.

  • "joe=arwR": 사용자읽고, 썼습니다(업데이트, 삭제), "추가" (삽입) 권한 및 권한 테이블에 규칙을 만듭니다.

  • "그룹 직원=ar": 그룹직원있음선택그리고삽입허가.

명령어부여그리고취소액세스를 설정하는 데 사용됩니다. 권한.

\! [ 명령 ]

별도의 Unix 쉘로 탈출하거나 Unix를 실행합니다. 명령명령. 는 인수는 더 이상 해석되지 않으며 쉘은 그대로.

\?

백슬래시에 대한 도움말 정보 보기("\") 명령.

명령줄 옵션

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

-a, --echo-all

읽은 모든 줄을 화면에 인쇄하세요. 이 것보다 스크립트 처리에 더 유용합니다. 대화형 모드. 이는 다음을 설정하는 것과 동일합니다. 변수에코모두.

-A, --no-align

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

-c, --명령질의

다음을 지정합니다윈 토토이다 하나의 쿼리 문자열을 실행하려면,질의을 누른 다음 종료합니다. 이것은 유용하다 쉘 스크립트에서.

질의다음 중 하나여야 합니다. 백엔드에서 완전히 구문 분석할 수 있는 쿼리 문자열 (즉, no를 포함합니다.윈 토토특정 기능) 또는 단일 백슬래시 명령입니다. 따라서 섞을 수 없습니다.SQL그리고윈 토토메타 명령. 받는 사람 이를 달성하려면 문자열을 파이프로 연결할 수 있습니다.윈 토토, 다음과 같습니다:echo "\x \\ foo에서 *를 선택하세요;" | 윈 토토.

-d, --dbnamedb이름

연결할 데이터베이스의 이름을 지정합니다. 이 지정하는 것과 같습니다db이름첫 번째 비옵션으로 명령줄의 인수입니다.

-e, --echo-queries

백엔드로 전송된 모든 쿼리를 표시합니다. 이것은 변수 설정과 동일에코쿼리.

-E, --echo-hidden

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

-f, --file파일 이름

파일 사용파일 이름으로 쿼리를 읽는 대신 쿼리 소스 대화식으로. 파일이 처리된 후,윈 토토종료됩니다. 이는 여러 면에서 내부 명령과 동일\i.

이 옵션을 사용하는 것은 글쓰기와 미묘하게 다릅니다윈 토토 <파일 이름. 일반적으로 둘 다 예상한 대로 수행하되 다음을 사용하십시오.-f오류 메시지와 같은 멋진 기능을 줄로 활성화합니다. 숫자. 이것을 사용하는 경우도 약간의 가능성이 있습니다. 옵션을 사용하면 시작 오버헤드가 줄어듭니다. 다른 한편으로는 한편, 쉘의 입력 리디렉션을 사용하는 변형은 다음과 같습니다. (이론적으로) 정확히 동일한 출력을 보장합니다. 당신이 모든 것을 입력했다면 당신이 얻었을 것입니다. 손.

-F, --필드 구분 기호구분자

사용구분자으로 필드 구분 기호. 이는 다음과 같습니다.\pset 필드ep또는\f.

-h, --호스트호스트 이름

다음이 실행되는 시스템의 호스트 이름을 지정합니다.우체국장실행 중입니다. 만약에 호스트는 슬래시로 시작하며 호스트의 디렉토리로 사용됩니다. Unix 도메인 소켓.

-H, --html

켜짐HTML표 형식 출력. 이는 다음과 같습니다.\pset HTML 형식또는\H명령.

-l, --list

사용 가능한 모든 데이터베이스를 나열한 후 종료합니다. 기타 비연결 옵션은 무시됩니다. 이는 다음과 유사합니다. 내부 명령\목록.

-o, --output파일 이름

모든 쿼리 결과를 파일에 저장파일 이름. 이는 다음과 같습니다. 명령\o.

-p, --port포트

TCP/IP 포트를 지정하거나 생략 시 로컬 포트를 지정합니다. Unix 도메인 소켓 파일 확장자:우체국장다음을 듣고 있습니다 연결. 기본값은PG포트환경 변수 또는 설정되지 않은 경우 컴파일 타임에 지정된 포트, 일반적으로 5432입니다.

-P, --pset과제

다음 스타일로 인쇄 옵션을 지정할 수 있습니다.\pset명령줄에서. 참고하세요 여기서는 이름과 값을 등호로 구분해야 합니다. 공백 대신. 따라서 출력 형식을 LaTeX로 설정하려면, 당신은 쓸 수 있습니다-P 형식=라텍스.

-q

다음을 지정합니다윈 토토조용히 작업을 수행해야 합니다. 기본적으로 Welcome을 인쇄합니다. 메시지 및 다양한 정보 출력. 이 옵션의 경우 사용하면 이런 일이 발생하지 않습니다. 이는 다음과 같은 경우에 유용합니다.-c옵션. 이내윈 토토또한 다음을 설정할 수 있습니다조용함동일한 효과를 얻기 위한 변수입니다.

-R, --record-separator구분자

사용구분자다음과 같이 기록 구분 기호. 이는 다음과 같습니다.\pset 기록ep명령.

-s, --단일 단계

단일 단계 모드로 실행합니다. 이는 사용자에게 메시지가 표시됨을 의미합니다. 각 쿼리가 백엔드로 전송되기 전에 옵션을 사용하여 실행도 취소합니다. 이를 사용하여 스크립트를 디버깅합니다.

-S, --한 줄

개행 문자가 끝나는 단일 행 모드에서 실행됩니다. 쿼리는 세미콜론과 같습니다.

참고:이 모드는 다음과 같은 사람들에게 제공됩니다. 주장하지만 반드시 그렇게 하도록 권장되는 것은 아닙니다. 그것을 사용하십시오. 특히, 혼합하면SQL및 한 줄의 메타 명령 실행 순서가 항상 명확하지 않을 수도 있습니다. 경험이 없는 사용자입니다.

-t, --tuples-only

열 이름 및 결과 행 개수 인쇄 끄기 바닥글 등은와 완전히 동일합니다.\t메타 명령.

-T, --table-attrtable_options

당신이 옵션 내에 배치될 옵션을 지정할 수 있습니다.HTML 테이블태그. 참조\pset자세한 내용은.

-u

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

이 옵션은 개념적으로 결함이 있기 때문에 더 이상 사용되지 않습니다. (기본값이 아닌 사용자 이름을 묻는 메시지와 백엔드에서 요구하는 비밀번호는 실제로 두 개입니다. 다른 내용이 있습니다.) 다음을 살펴보는 것이 좋습니다.-유그리고-W대신 옵션을 사용하세요.

-U, --사용자 이름사용자 이름

사용자로 데이터베이스에 연결합니다.사용자 이름기본값 대신. (당신 물론 그렇게 하려면 허가가 있어야 합니다.)

-v, --변수, --세트과제

다음과 같은 변수 할당을 수행합니다.\세트내부 명령. 참고하세요 이름과 값(있는 경우)을 등호로 구분합니다. 명령줄. 변수를 설정 해제하려면 같음을 그대로 두십시오. 서명. 값 없이 변수를 설정하려면 같음을 사용하세요. 서명하되 값은 생략하세요. 이 임무는 완료되었습니다 아주 초기 단계이기 때문에 변수가 많습니다. 내부 목적으로 예약되어 있으면 덮어쓸 수 있습니다. 나중에.

-V, --버전

다음을 보여줍니다윈 토토버전.

-W, --password

요청합니다윈 토토에 연결하기 전에 비밀번호를 묻는 메시지를 표시해야 합니다. 데이터베이스. 이는 전체 세션에 대해 설정된 상태로 유지됩니다. 메타 명령을 사용하여 데이터베이스 연결을 변경하는 경우\연결.

버전 7.0 기준,윈 토토백엔드가 실행될 때마다 자동으로 비밀번호 프롬프트를 표시합니다. 비밀번호 인증을 요청합니다. 왜냐면 현재는 해킹으로 인해 자동 인식이 될 수 있습니다. 알 수 없는 실패가 발생하므로 이 옵션은 프롬프트를 강제로 표시합니다. 만약에 비밀번호 프롬프트가 발행되지 않으며 백엔드에서 필요합니다. 비밀번호 인증을 통해 연결 시도가 이루어집니다. 실패하다.

-x, --확장

확장 행 형식 모드를 켭니다. 이는 다음과 같습니다. 명령\x.

-X, --no-윈 토토rc

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

-?, --help

다음에 대한 도움말 표시윈 토토명령줄 인수.

고급 기능

변수

윈 토토변수 제공 일반적인 Unix 명령 셸과 유사한 대체 기능입니다. 이 기능은 새롭고 아직 정교하지는 않지만 앞으로 확대할 계획이다. 변수는 단순히 이름/값 쌍(여기서 값은 임의의 문자열일 수 있음) 길이. 변수를 설정하려면윈 토토메타 명령\세트:

testdb=\set foo bar
변수를 설정"foo"에 값"바". 내용을 검색하려면 변수 이름 앞에 콜론을 붙여 변수로 사용합니다. 슬래시 명령의 인수:
testdb=\echo :foo

참고:인수\세트동일한 대체가 적용됩니다. 다른 명령과 마찬가지로 규칙을 따릅니다. 따라서 당신은 구성 할 수 있습니다 다음과 같은 흥미로운 참고자료\세트 :foo '뭔가'그리고 얻으세요"소프트 링크"또는"변수 변수"또는PHP명성, 각각. 불행하게도(혹은 다행스럽게도?) 이러한 구성으로 유용한 작업을 수행하는 방법입니다. 에 반면에,\설정 바 :foo은 변수를 복사하는 완벽하게 유효한 방법입니다.

부르신다면\세트1초도 없이 인수인 경우 변수는 단순히 설정되지만 값은 없습니다. 받는 사람 변수를 설정 해제(또는 삭제)하려면 다음 명령을 사용하세요.\unset.

윈 토토의 내부 변수 이름은 문자, 숫자, 밑줄로 구성될 수 있습니다. 주문하고 원하는 수만큼 주문하세요. 다수의 일반 변수는 다음과 같습니다. 특별 대우윈 토토. 이는 다음에서 변경할 수 있는 특정 옵션 설정을 나타냅니다. 변수 값을 변경하거나 일부를 표현하여 런타임 응용 프로그램의 상태입니다. 이러한 변수를 사용할 수 있지만 다른 목적으로는 권장되지 않습니다. 행동이 정말 빨리 이상해 질 수 있습니다. 작성자: 관례상 특별히 처리되는 모든 변수는 다음과 같이 구성됩니다. 대문자(숫자와 밑줄도 가능). 받는 사람 앞으로는 최대한의 호환성을 보장하고 그러한 것을 피하십시오. 변수. 특별히 처리된 모든 변수 목록 다음과 같습니다.

DBNAME

현재 연결되어 있는 데이터베이스의 이름 에. 데이터베이스에 연결할 때마다 설정됩니다. (프로그램 시작 포함), 설정 해제할 수 있습니다.

에코

다음으로 설정된 경우"모두", 입력된 모든 줄 또는 스크립트는 표준 출력에 기록되기 전에 작성됩니다. 구문 분석되거나 실행됩니다. 프로그램 시작 시 이를 지정하려면, 스위치를 사용하세요-a. 으로 설정된 경우"쿼리", 윈 토토단지 모든 쿼리를 다음과 같이 인쇄합니다. 백엔드로 전송됩니다. 이에 대한 옵션은 다음과 같습니다.-e.

ECHO_HIDDEN

이 변수가 설정되고 백슬래시 명령이 데이터베이스를 쿼리하면 쿼리가 먼저 표시됩니다. 이쪽으로 당신은 공부할 수 있습니다포스트그레내부 및 제공 귀하의 프로그램에서도 유사한 기능을 제공합니다. 설정하면 변수를 값으로"noexec", 쿼리는 방금 표시되었지만 실제로 백엔드로 전송되어 실행되지 않습니다.

인코딩

현재 클라이언트 멀티바이트 인코딩입니다. 당신이 그렇지 않다면 멀티바이트 문자를 사용하도록 설정하면 이 변수는 항상 포함"SQL_ASCII".

HIST컨트롤

이 변수가 다음으로 설정된 경우무시 공간, a로 시작하는 줄 공백은 기록 목록에 입력되지 않습니다. 로 설정한 경우 값무시됨, 라인 이전 기록 라인과 일치하는 내용은 입력되지 않습니다. 에이 값둘 다 무시결합 두 가지 옵션. 설정되지 않거나 다음 값이 아닌 다른 값으로 설정된 경우 위의 내용은 대화형 모드에서 읽은 모든 줄이 저장됩니다. 기록 목록에 있습니다.

참고:이 기능은 뻔뻔스럽게도 에서 표절함배쉬.

HISTSIZE

명령어에 저장할 명령의 수 역사. 기본값은 500입니다.

참고:이 기능은 뻔뻔스럽게도 에서 표절함배시.

호스트

현재 연결되어 있는 데이터베이스 서버 호스트 에. 데이터베이스에 연결할 때마다 설정됩니다. (프로그램 시작 포함), 설정 해제할 수 있습니다.

IGNOREEOF

설정되지 않은 경우 EOF 문자 보내기(일반적으로 Control-D) 대화형 세션으로윈 토토애플리케이션을 종료합니다. 숫자 값으로 설정하면 해당 개수의 EOF 문자가 애플리케이션이 종료되기 전에는 무시됩니다. 만약 변수가 설정되었지만 숫자 값이 없으면 기본값은 다음과 같습니다. 10.

참고:이 기능은 뻔뻔스럽게도 에서 표절함배쉬.

LASTOID

다음에서 반환된 마지막 영향을 받은 oid의 값 an삽입또는lo_insert명령. 이 변수는 단지 다음 결과 이후까지 유효함을 보장함SQL명령이 수행되었습니다. 표시됩니다.

LO_TRANSACTION

다음을 사용하는 경우포스트그레스대형 객체 인터페이스 하나의 튜플에 맞지 않는 데이터를 특별히 저장합니다. 모든 작업은 트랜잭션에 포함되어야 합니다. 블록. (대형 개체의 설명서를 참조하세요. 자세한 내용은 인터페이스를 참조하세요.) 이후윈 토토당신이 어떤지 알 수 있는 방법이 없습니다 전화를 걸면 이미 거래가 진행 중입니다. 내부 명령 중 (\lo_export, \lo_import, \lo_unlink) 임의의 작업이 필요합니다. 행동. 이 작업은 모든 항목을 롤백하는 것일 수 있습니다. 이미 진행 중인 거래 또는 그러한 거래를 저지르거나 전혀 아무것도 하지 않습니다. 에서 마지막 사례는 직접 제공해야 합니다.거래 시작/커밋차단하지 않으면 결과는 다음과 같습니다. 예측할 수 없음(일반적으로 원하는 작업의 결과가 발생함) 어떠한 경우에도 수행되지 않습니다.)

원하는 작업을 선택하려면 이 변수를 다음으로 설정하세요. 중 하나"롤백", "커밋", 또는"아무것도". 기본값은 롤백입니다. 거래. 한 개 또는 몇 개만 로드하고 싶다면 물건은 괜찮습니다. 다만, 이전할 예정이라면 큰 개체가 많으면 하나를 제공하는 것이 좋습니다. 모든 명령에 대한 명시적 트랜잭션 블록입니다.

ON_ERROR_STOP

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

포트

현재 접속하고 있는 데이터베이스 서버 포트 연결되었습니다. 이는 다음에 연결할 때마다 설정됩니다. 데이터베이스(프로그램 시작 포함)이지만 설정되지 않았습니다.

PROMPT1, PROMPT2, PROMPT3

이것은 프롬프트가 무엇인지 지정합니다윈 토토문제는 다음과 같습니다 좋아. 참조"프롬프트"아래.

조용함

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

싱글라인

이 변수는 명령줄 옵션에 의해 설정됩니다.-S. 다음에서 설정을 해제하거나 재설정할 수 있습니다. 실행 시간.

싱글스텝

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

사용자

현재 연결되어 있는 데이터베이스 사용자. 이 데이터베이스에 연결할 때마다 설정됩니다(포함). 프로그램 시작), 설정을 해제할 수 있습니다.

SQL보간

추가로 유용한 기능윈 토토변수는 대체할 수 있다는 것입니다 ("보간") 일반으로SQL문장. 구문은 이는 다시 변수 이름 앞에 콜론을 추가하는 것입니다. (:).

testdb=\set foo 'my_table'testdb=SELECT * FROM :foo;
그런 다음 테이블을 쿼리합니다내_테이블. 변수의 값은 문자 그대로 복사되므로 불균형한 따옴표나 백슬래시 명령이 포함되어 있습니다. 반드시 확인해야 합니다. 어디에 두느냐가 의미가 있다는 것입니다. 변수 보간은 인용되지 않음SQL엔티티.

이 시설의 대중적인 응용은 다음을 참조하는 것입니다. 마지막으로 삽입됨OID다음에 외래 키 시나리오를 작성하는 명령문입니다. 또 다른 가능 이 메커니즘을 사용하는 것은 파일의 내용을 필드. 먼저 파일을 변수에 로드한 다음 다음과 같이 진행합니다. 위.

testdb=\세트 콘텐츠 '\'' `cat my_file.txt` '\''testdb=my_table 값에 삽입(:content);
이 접근 방식의 한 가지 가능한 문제는 다음과 같습니다.my_file.txt단일을 포함할 수 있음 따옴표. 이러한 오류가 발생하지 않도록 이스케이프 처리해야 합니다. 세 번째 줄을 처리할 때 구문 오류가 발생했습니다. 이것은 프로그램 완료sed:
테스트db=\콘텐츠 설정 `sed -e "s/'/\\\\\\'/g" < my_file.txt`
정확한 백슬래시 수(6)를 확인하십시오! 당신은 할 수 있습니다 다음 방법으로 해결하세요. 이후윈 토토이 줄을 구문 분석했으며 통과했습니다.sed -e "s/'/\\\'/g" < my_file.txt쉘에. 쉘이 할 것이다 큰 따옴표 안에 자신의 것을 넣고 실행하십시오.sed인수 포함-e그리고s/'/\\'/g. 언제sed이것을 분석하면 두 개를 대체합니다. 백슬래시를 하나만 사용한 다음 대체를 수행합니다. 아마도 한때 당신은 모든 Unix 명령이 사용하는 것이 훌륭하다고 생각했습니다. 동일한 이스케이프 문자입니다. 그리고 이것은 당신이 모든 백슬래시를 이스케이프해야 할 수도 있습니다. 왜냐하면SQL텍스트 상수는 또한 특정 해석이 적용됩니다. 그렇다면 당신은 그럴 수도 있습니다. 외부에서 파일을 준비하는 것이 좋습니다.

콜론이 쿼리에 합법적으로 나타날 수 있으므로 다음은 규칙 적용: 변수가 설정되지 않은 경우 문자는 순서"콜론+이름"아님 변경되었습니다. 어쨌든 백슬래시를 사용하여 콜론을 이스케이프 처리할 수 있습니다. 해석으로부터 보호하십시오. (변수에 대한 콜론 구문 표준입니다SQL내장된 쿼리의 경우 언어(예:ecpg. 는 배열 슬라이스 및 유형 캐스트에 대한 콜론 구문은 다음과 같습니다.포스트그레스확장, 따라서 충돌.)

프롬프트

프롬프트윈 토토문제는 다음과 같습니다. 원하는 대로 맞춤 설정하세요. 세 가지 변수PROMPT1, PROMPT2, 그리고PROMPT3문자열 및 특수 문자 포함 프롬프트의 모양을 설명하는 이스케이프 시퀀스입니다. 프롬프트 1은 다음과 같은 경우에 발행되는 일반 프롬프트입니다.윈 토토새 쿼리를 요청합니다. 프롬프트 2는 쿼리 입력 중에 더 많은 입력이 예상되는 경우 발행됩니다. 쿼리가 세미콜론으로 끝나지 않았거나 따옴표가 있습니다. 닫히지 않았습니다. 프롬프트 3은 다음을 실행할 때 발행됩니다.SQL 복사명령 및 터미널에 튜플을 입력해야 합니다.

각 프롬프트 변수의 값이 인쇄됩니다 문자 그대로, 퍼센트 기호("%")이 발생했습니다. 다음에 따라 문자가 있는 경우 특정 다른 텍스트가 대신 대체됩니다. 정의됨 대체 항목은 다음과 같습니다.

%M

데이터베이스의 전체 호스트 이름(도메인 이름 포함) 서버(또는"로컬호스트"만일 호스트 이름 정보는 제공되지 않습니다.)

%m

데이터베이스 서버의 호스트 이름, 뒤에 잘림 첫 번째 점.

%

데이터베이스 서버가 연결된 포트 번호 듣고 있어요.

%n

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

%/

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

%~

좋아요%/, 그러나 출력은"~"82150_82212

%#

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

%R

일반적으로 프롬프트 1에서"=", 하지만"^"한 줄에 있는 경우 모드 및"!"세션인 경우 데이터베이스와의 연결이 끊어졌습니다(다음과 같은 경우에 발생할 수 있음)\연결실패). 프롬프트 2에서는 시퀀스는 다음으로 대체됩니다."-", "*", 작은따옴표 또는 여부에 따라 큰따옴표윈 토토더 많은 입력을 기대합니다. 왜냐하면 당신이 안에 있기 때문에 쿼리가 아직 종료되지 않았습니다./* ... */댓글을 달거나 당신은 인용문 안에 있습니다. 프롬프트 3에서는 시퀀스가 뭐든지 결심해.

%숫자

만약숫자다음으로 시작0x나머지 문자들 16진수 숫자와 문자로 해석됩니다. 해당 코드로 대체됩니다. 첫 번째 경우 숫자는0문자는 8진수와 그에 상응하는 것으로 해석됩니다. 문자가 대체됩니다. 그렇지 않으면 십진수는 다음과 같습니다. 가정했습니다.

%:이름:

의 가치윈 토토, 변수이름. 섹션을 참조하세요."변수"자세한 내용은.

%`명령`

다음의 출력명령, 보통과 비슷함"백틱"대체.

프롬프트에 퍼센트 기호를 삽입하려면 다음을 입력하세요.%%. 기본 프롬프트는 동일합니다. 에'%/%R%# '프롬프트 1과 2의 경우 및' '프롬프트 3의 경우.

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

기타

윈 토토셸에 0을 반환합니다. 정상적으로 완료되면 1, 자체적으로 치명적인 오류가 발생하면 1입니다. 메모리, 파일을 찾을 수 없음)이 발생합니다. 2 백엔드가 손상되어 세션이 대화형이 아니며 3인 경우 스크립트 및 변수에서 오류가 발생했습니다.ON_ERROR_STOP설정되었습니다.

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

GNUreadline

윈 토토readline을 지원합니다 편리한 라인 편집을 위한 히스토리 라이브러리 및 검색. 명령 기록은라는 파일에 저장됩니다..윈 토토_history홈 디렉토리에 다음 경우에 다시 로드됩니다.윈 토토시작합니다. 탭 완성도 지원됩니다. 완료 논리는 다음과 같은 주장을 하지 않습니다.SQL파서. 가능한 경우,윈 토토이를 사용하도록 자동으로 구축되었습니다. 특징. 어떤 이유로 탭이 마음에 들지 않는 경우 완료되면 이것을 이름이 지정된 파일에 넣어서 끌 수 있습니다..inputrc홈 디렉토리에서:

$if 윈 토토
비활성화 완료 설정
$endif
(이것은 a가 아닙니다.윈 토토그러나 areadline기능. 읽어보세요 자세한 내용은 문서를 참조하세요.)

readline 라이브러리가 설치되어 있지만윈 토토사용하지 않는 것 같습니다. 반드시 사용해야 합니다 확실히 해두세요포스트그레의 최상위구성스크립트가 그것을 찾았습니다.구성두 가지를 모두 찾아야 합니다. 도서관libreadline.a(또는 공유 라이브러리에 해당)그리고헤더 파일readline.h그리고역사.h(또는readline/readline.h그리고readline/history.h)를 적절한 디렉토리에 넣습니다. 라이브러리와 헤더 파일이 설치된 경우 당신이 말해야 할 모호한 장소구성그들에 대해, 예를 들어:

$ ./configure --with-includes=/opt/gnu/include --with-libs=/opt/gnu/lib ...
그럼 다시 컴파일해야 합니다윈 토토(반드시 전체 코드 트리일 필요는 없음).

GNUreadline 라이브러리는 다음과 같습니다. 에서 얻은 것입니다.GNU프로젝트의FTP서버 위치ftp://ftp.gnu.org.

참고:이 섹션에서는 몇 가지 예만 보여줍니다. 특정윈 토토. 당신이 배우고 싶다SQL또는 받기 익숙하다포스트그레당신은 다음에 포함된 튜토리얼을 읽어보고 싶을 수도 있습니다. 배포.

첫 번째 예는 쿼리를 여러 항목에 분산시키는 방법을 보여줍니다. 입력 라인. 변경 프롬프트를 확인하세요.

testdb=테이블 생성 my_table(테스트db(첫 번째 정수는 null이 아님 기본값 0,테스트db(두 번째 텍스트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행)
다음을 사용하여 이 테이블을 다르게 보이게 할 수 있습니다.\pset명령:
peter@localhost testdb=\pset 테두리 2테두리 스타일은 2입니다.
peter@localhost testdb=SELECT * FROM my_table;+-------+--------+
| 먼저 | 두 번째 |
+---------+---------+
|     1 | 하나 |
|     2 | 두 |
|     3 | 세 |
|     4 | 네 |
+---------+---------+
(4열)

peter@localhost testdb=\pset 테두리 0테두리 스타일은 0입니다.
peter@localhost testdb=SELECT * FROM my_table;첫 번째 두 번째
----- ------
    1개
    2 2
    3 3
    4 4
(4열)

peter@localhost testdb=\pset 테두리 1테두리 스타일은 1입니다.
peter@localhost testdb=\pset 형식이 정렬되지 않음출력 형식이 정렬되지 않았습니다.
peter@localhost testdb=\pset fieldep ","필드 구분자는 ","입니다.
peter@localhost testdb=\pset tuples_only튜플만 표시합니다.
peter@localhost testdb=두 번째, 첫 번째 FROM my_table;하나,1
둘, 2
세,3
4,4
또는 짧은 명령을 사용하십시오:
peter@localhost testdb=\a \t \x출력 형식이 정렬되었습니다.
튜플만 꺼져 있습니다.
확장된 디스플레이가 켜져 있습니다.
peter@localhost testdb=SELECT * FROM my_table;-[ 기록 1 ]-
먼저 | 1
두 번째 | 하나
-[ 기록 2 ]-
먼저 | 2
두 번째 | 두
-[ 기록 3 ]-
먼저 | 3
두 번째 | 세
-[ 기록 4 ]-
먼저 | 4
두 번째 | 4개

부록

버그 및 문제

  • 어느 전생에서윈 토토다음에 첫 번째 인수를 허용했습니다. (단일 문자) 명령 바로 다음에 시작합니다. 에 대한 호환성은 여전히 어느 정도 지원되지만 이 사용법은 여기에서 자세히 설명하지 않겠습니다. 낙담. 하지만 이상한 메시지가 나타나면 이 메시지를 보관하세요. 마음. 예를 들어

    testdb=\foo필드 구분 기호는 "oo"입니다.
    아마도 예상했던 것과는 다를 것입니다.
  • 윈 토토만 작동합니다 동일한 버전의 서버와 원활하게 작동합니다. 그렇지 않다 다른 조합은 완전히 실패하지만 미묘하고 그다지 미묘하지 않은 문제가 발생할 수도 있습니다.

  • 컨트롤-C를 누르는 동안"복사 에서"(서버로 전송된 데이터)가 가장 많이 표시되지 않습니다. 이상적인 행동. 다음과 같은 메시지를 받으면"PQexec: 당신은 사본에서 벗어나야 합니다 자신을 말해보세요", 간단히 연결을 재설정하세요. 입력 중\c - -.