배트맨 토토터미널 기반입니다. 프런트엔드에서포스트그레SQL. 그것 대화형으로 쿼리를 입력하고 발행할 수 있습니다.포스트그레SQL, 쿼리를 확인하세요. 결과. 또는 파일에서 입력할 수도 있습니다. 게다가, 그것은 다수의 메타 명령과 다양한 쉘 유사 명령을 제공합니다. 스크립트 작성을 용이하게 하고 다양한 작업을 자동화하는 기능 다양한 작업을 수행합니다.
-a--에코-모두읽은 모든 줄을 화면에 인쇄하십시오. 이것
것보다 스크립트 처리에 더 유용합니다.
대화형 모드. 이는 다음을 설정하는 것과 동일합니다.
변하기 쉬운에코에전체.
-A--정렬 없음정렬되지 않은 출력 모드로 전환합니다. (기본 출력 그렇지 않으면 모드가 정렬됩니다.)
-c질의--명령질의다음을 지정함배트맨 토토이다 하나의 쿼리 문자열을 실행하려면,쿼리를 누른 다음 종료합니다. 이것은 유용하다 쉘 스크립트에서.
질의다음 중 하나여야 합니다. 백엔드에서 완전히 구문 분석할 수 있는 쿼리 문자열 (즉, no를 포함합니다.배트맨 토토특정 기능) 또는 단일 백슬래시 명령입니다. 따라서 섞을 수 없습니다.SQL그리고배트맨 토토메타 명령. 에게 이를 달성하려면 문자열을 파이프로 연결할 수 있습니다.배트맨 토토, 다음과 같습니다:echo "\x \\ foo에서 *를 선택하세요." | 배트맨 토토.
-ddb이름--dbnamedb이름연결할 데이터베이스의 이름을 지정합니다. 이것 지정하는 것과 같습니다db이름첫 번째 비옵션으로 명령줄의 인수입니다.
-e--에코 쿼리백엔드로 전송된 모든 쿼리를 표시합니다. 이것은
변수 설정과 동일에코에쿼리.
-E--에코 숨김\d 및 기타에 의해 생성된 실제 쿼리를 반영합니다.
백슬래시 명령. 포함하고 싶다면 이것을 사용할 수 있습니다
유사한 기능을 자신의 프로그램에 추가하세요. 이것은
변수 설정과 동일ECHO_HIDDEN내부에서배트맨 토토.
-f파일 이름--파일파일 이름파일 사용파일 이름다음과 같이 쿼리를 읽는 대신 쿼리 소스 대화식으로. 파일이 처리된 후,배트맨 토토종료됩니다. 이는 여러 면에서 내부 명령과 동일\i.
만약파일 이름is-(하이픈)이면 표준 입력은 읽다.
이 옵션을 사용하는 것은 글쓰기와 약간 다릅니다배트맨 토토 <파일 이름. 일반적으로 둘 다 예상한 대로 수행하되 다음을 사용하십시오.-f오류 메시지와 같은 멋진 기능을 줄로 활성화합니다. 숫자. 이것을 사용하는 경우도 약간의 가능성이 있습니다. 옵션을 사용하면 시작 오버헤드가 줄어듭니다. 다른 한편으로는 한편, 쉘의 입력 리디렉션을 사용하는 변형은 다음과 같습니다. (이론적으로) 정확히 동일한 출력을 보장합니다. 당신이 모든 것을 입력했다면 당신이 얻었을 것입니다. 손.
-F구분자--필드 구분자구분자사용구분자다음과 같이 필드 구분 기호. 이는 다음과 같습니다.\pset 필드ep또는\f.
-h호스트 이름--호스트호스트 이름다음이 실행되는 시스템의 호스트 이름을 지정합니다.우체국장실행 중입니다. 만약에 호스트는 슬래시로 시작하며 호스트의 디렉토리로 사용됩니다. Unix 도메인 소켓.
-H--html켜짐HTML표 형식 산출. 이는 다음과 같습니다.\pset HTML 형식또는\H명령.
-l--목록사용 가능한 모든 데이터베이스를 나열한 후 종료합니다. 다른 비연결 옵션은 무시됩니다. 이는 다음과 유사합니다. 내부 명령\목록.
-o파일 이름--출력파일 이름모든 쿼리 결과를 파일에 저장파일 이름. 이는 다음과 같습니다. 명령\o.
-p포트--포트포트TCP/IP 포트를 지정하거나 생략 시 로컬 포트를 지정합니다. Unix 도메인 소켓 파일 확장자:우체국장다음을 듣고 있습니다 사이. 기본값은PG포트환경 변수 또는 설정되지 않은 경우 컴파일 타임에 지정된 포트, 일반적으로 5432입니다.
-P과제--pset과제다음 스타일로 인쇄 옵션을 지정할 수 있습니다.\pset명령줄에서. 메모 여기서는 이름과 값을 등호로 구분해야 합니다. 공백 대신 서명하십시오. 따라서 출력 형식을 다음으로 설정하려면 LaTeX, 당신은 쓸 수 있습니다-P 형식=라텍스.
-q--조용함다음을 지정함배트맨 토토조용히 작업을 수행해야 합니다. 기본적으로 Welcome을 인쇄합니다.
메시지 및 다양한 정보 출력. 이 옵션의 경우
사용하면 이런 일이 발생하지 않습니다. 이는 다음과 같은 경우에 유용합니다.-c옵션. 이내에배트맨 토토또한 다음을 설정할 수 있습니다조용함동일한 결과를 얻기 위한 변수
효과.
-R구분자--레코드 구분자구분자사용구분자다음과 같이 기록 구분 기호. 이는 다음과 같습니다.\pset recordsep명령.
-s--한 단계단일 단계 모드로 실행합니다. 이는 사용자에게 메시지가 표시됨을 의미합니다. 각 쿼리가 백엔드로 전송되기 전에 옵션을 사용하여 실행도 취소합니다. 이를 사용하여 스크립트를 디버깅합니다.
-S--한 줄개행 문자가 종료되는 단일 행 모드에서 실행됩니다. 쿼리는 세미콜론과 같습니다.
참고:이 모드는 다음과 같은 분들을 위해 제공됩니다. 주장하지만 반드시 그렇게 하도록 권장되는 것은 아닙니다. 그것을 사용하십시오. 특히, 혼합하면SQL및 한 줄의 메타 명령 실행 순서가 항상 명확하지 않을 수도 있습니다. 경험이 없는 사용자입니다.
-t--튜플 전용열 이름 및 결과 행 개수 인쇄 끄기 바닥글 등은와 완전히 동일합니다.\t메타 명령.
-Ttable_options--테이블 속성table_options다음에 배치할 옵션을 지정할 수 있습니다.HTML 테이블태그. 보다\pset자세한 내용은.
-u만드는배트맨 토토프롬프트 연결하기 전에 사용자 이름과 비밀번호 데이터 베이스.
이 옵션은 개념적으로 결함이 있기 때문에 더 이상 사용되지 않습니다.
(기본값이 아닌 사용자 이름을 묻는 메시지와
백엔드에서 요구하는 비밀번호는 실제로 두 개입니다.
다른 내용이 있습니다.) 다음을 살펴보는 것이 좋습니다.-유그리고-W대신 옵션을 사용하세요.
-유사용자 이름--사용자 이름사용자 이름사용자로 데이터베이스에 연결사용자 이름기본값 대신. (너 물론 그렇게 하려면 허가가 있어야 합니다.)
-v과제--설정과제--변수과제다음과 같은 변수 할당을 수행합니다.\세트내부 명령. 참고하세요 이름과 값(있는 경우)을 등호로 구분합니다. 명령줄. 변수를 설정 해제하려면 같음을 그대로 두십시오. 징후. 값 없이 변수를 설정하려면 같음을 사용하세요. 서명하되 값은 생략하세요. 이 임무는 완료되었습니다 아주 초기 단계이기 때문에 변수가 많습니다. 내부 목적으로 예약되어 있으면 덮어쓸 수 있습니다. 나중에.
-V--버전다음을 보여줌배트맨 토토버전.
-W--비밀번호요청합니다배트맨 토토에 연결하기 전에 비밀번호를 묻는 메시지를 표시해야 합니다. 데이터 베이스. 이는 전체 세션에 대해 설정된 상태로 유지됩니다. 메타 명령을 사용하여 데이터베이스 연결을 변경하는 경우\연결.
현재 버전에서는,배트맨 토토자동으로 비밀번호를 발급합니다 백엔드가 비밀번호를 요청할 때마다 프롬프트 입증. 현재는 해킹을 기반으로 하고 있기 때문에, 자동 인식이 이상하게도 실패할 수 있으므로 프롬프트를 강제로 표시하려면 이 옵션을 사용하세요. 비밀번호 프롬프트가 표시되지 않는 경우 발급되었으며 백엔드에 비밀번호 인증이 필요합니다. 연결 시도가 실패합니다.
-x--확장됨확장 행 형식 모드를 켭니다. 이는 다음과 같습니다. 명령\x.
-X,--no-배트맨 토토rc시작 파일을 읽지 마십시오.~/.배트맨 토토rc.
-?--도움말다음에 대한 도움말 표시배트맨 토토명령줄 인수.
긴 옵션은 모든 플랫폼에서 사용할 수 없습니다.
배트맨 토토셸에 0을 반환합니다.
정상적으로 완료되면 1, 자체적으로 치명적인 오류가 발생하면 1입니다.
메모리, 파일을 찾을 수 없음)이 발생합니다. 2
백엔드가 손상되어 세션이 대화형이 아니며, 3인 경우
스크립트 및 변수에서 오류가 발생했습니다.ON_ERROR_STOP설정되었습니다.
배트맨 토토단골입니다포스트그레SQL클라이언트 애플리케이션.
데이터베이스에 연결하려면 데이터베이스 이름을 알아야 합니다.
대상 데이터베이스, 호스트 이름 및 포트 번호
서버 및 연결하려는 사용자 이름.배트맨 토토해당 매개변수에 대해 알 수 있습니다.
명령줄 옵션을 통해, 즉-d, -h,
-p및-U각각. 주장이 발견되면
어떤 옵션에도 속하지 않는 것으로 해석됩니다.
데이터베이스 이름(또는 데이터베이스 이름이 다음과 같은 경우 사용자 이름)
주어진). 이러한 옵션이 모두 필요한 것은 아니며 기본값이 적용됩니다.
호스트 이름을 생략하는 경우,배트맨 토토Unix 도메인 소켓을 통해 연결됩니다
로컬 호스트의 서버에. 기본 포트 번호는 다음과 같습니다.
컴파일 시간이 결정되었습니다. 데이터베이스 서버는
기본값이 동일하므로 대부분의 경우 포트를 지정할 필요가 없습니다.
사례. 기본 사용자 이름은 Unix 사용자 이름입니다.
기본 데이터베이스 이름. 아무 곳에나 연결할 수는 없습니다.
임의의 사용자 이름으로 데이터베이스를 생성합니다. 데이터베이스 관리자
귀하의 액세스 권한에 대해 알려드렸어야 했습니다. 당신을 구하기 위해
일부 입력을 통해 환경 변수를 설정할 수도 있습니다.PGDATABASE, PGHOST, PGPORT그리고PGUSER적절한 값으로.
어떤 이유로든 연결이 이루어질 수 없는 경우(예: 권한이 부족하여 포스트마스터가 실행되고 있지 않습니다. 서버 등),배트맨 토토할 것이다 오류를 반환하고 종료합니다.
정상 작동 시,배트맨 토토데이터베이스 이름이 포함된 프롬프트를 제공배트맨 토토현재 연결되어 있습니다. 그 뒤에 문자열이 옵니다.=. 을 위한 예,
$ 배트맨 토토 테스트dbPostgreSQL 대화형 터미널인 배트맨 토토 7.3.21에 오신 것을 환영합니다.
유형: 배포 조건의 경우 \copyright
SQL 명령에 대한 도움말은 \h
\? 내부 슬래시 명령에 대한 도움말
\g 또는 세미콜론으로 종료하여 쿼리 실행
종료하려면 \q
테스트DB=
프롬프트에서 사용자는 다음을 입력할 수 있습니다.SQL쿼리. 일반적으로 입력 라인은 다음과 같습니다. 쿼리 종료 세미콜론이 있으면 백엔드로 전송됩니다. 도달했다. 줄 끝은 쿼리를 종료하지 않습니다! 따라서 명확성을 위해 쿼리를 여러 줄에 걸쳐 분산시킬 수 있습니다. 만약 쿼리가 전송되었으며 오류 없이 쿼리 결과는 다음과 같습니다. 화면에 표시됩니다.
귀하가 입력하는 모든 것배트맨 토토따옴표가 없는 백슬래시로 시작하는 것은 a배트맨 토토다음에 의해 처리되는 메타 명령배트맨 토토그 자체. 이 명령 만드는 것이 바로 그것입니다배트맨 토토관리 또는 스크립팅에 흥미롭습니다. 메타 명령은 다음과 같습니다 더 일반적으로 슬래시 또는 백슬래시 명령이라고 합니다.
a의 형식배트맨 토토명령은 백슬래시이고 바로 뒤에 명령이 옵니다. 동사 다음에는 인수가 있습니다. 인수는 다음과 분리됩니다. 명령 동사와 서로 공백을 사용하여 문자.
인수에 공백을 포함하려면 다음과 같이 인용할 수 있습니다. 작은 따옴표. 그러한 작은 따옴표를 포함하려면 인수 앞에 백슬래시를 붙입니다. 에 포함된 모든 것 작은따옴표는 또한 C와 유사한 대체의 대상이 됩니다. 을 위한\n(새 줄),\t(탭),\자리, \0자리및\0x숫자(주어진 문자를 가진 문자 10진수, 8진수 또는 16진수 코드).
따옴표가 없는 인수가 콜론으로 시작하는 경우(:), 이는 다음과 같이 간주됩니다.배트맨 토토변수 및 값 대신 변수가 인수로 사용됩니다.
역따옴표로 묶인 인수(`)은 다음으로 전달되는 명령줄로 사용됩니다. 껍질. 명령의 출력(후행 줄 바꿈 포함) 제거됨)이 인수 값으로 사용됩니다. 위의 탈출 역따옴표에도 시퀀스가 적용됩니다.
일부 명령에는 다음이 필요합니다.SQL식별자(예: 테이블 이름)를 인수로 사용합니다. 이러한 주장 다음의 구문 규칙을 따르십시오.SQL큰따옴표 관련: 식별자 큰따옴표가 없으면 소문자로 강제됩니다. 큰따옴표 안의 공백은 논쟁.
따옴표가 없는 다른 백슬래시가 있으면 인수 분석이 중지됩니다. 발생합니다. 이는 새로운 메타 명령의 시작으로 간주됩니다. 특별한 순서\\(두 백슬래시)는 인수의 끝을 표시하고 구문 분석을 계속합니다.SQL쿼리(있는 경우). 저것 방법SQL그리고배트맨 토토명령은 다음에서 자유롭게 혼합될 수 있습니다. 선. 그러나 어떤 경우에도 메타 명령의 인수는 다음과 같을 수 없습니다. 줄 끝을 넘어 계속하세요.
다음 메타 명령이 정의됩니다:
현재 테이블 출력 형식이 정렬되지 않은 경우, 정렬로 전환합니다. 정렬되지 않은 경우 다음으로 설정하십시오. 정렬되지 않았습니다. 이 명령은 뒤로 유지됩니다. 호환성. 보다\pset에 대한 일반적인 해결책.
현재 작업 디렉토리를 다음으로 변경디렉토리. 논쟁 없이 변경 현재 사용자의 홈 디렉터리로 이동합니다.
팁:현재 작업을 인쇄하려면 디렉토리, 사용\!pwd.
인쇄되는 테이블의 제목을 다음으로 설정합니다. 쿼리 결과 또는 해당 제목의 설정을 해제합니다. 이 명령 다음과 같습니다.\pset 제목제목. (이름은 이 명령은 다음에서 파생됩니다."캡션", 이전에는 단지 사용되었으므로 캡션을 설정하려면HTML테이블.)
새 데이터베이스 및/또는 연결을 설정합니다. 사용자 이름으로. 이전 연결이 닫혔습니다. 만약에db이름is-현재 데이터베이스 이름은 다음과 같습니다 꾸민.
만약사용자 이름생략됨 현재 사용자 이름이 가정됩니다.
특별한 규칙으로,\연결인수 없이 기본값에 연결됩니다 데이터베이스를 기본 사용자로 설정합니다. 시작배트맨 토토없이 모든 인수).
연결 시도가 실패한 경우(잘못된 사용자 이름, 액세스 거부 등), 이전 연결은 다음과 같은 경우에만 유지됩니다.배트맨 토토대화형 모드입니다. 비대화형을 실행할 때 스크립트를 실행하면 오류가 발생하여 처리가 즉시 중지됩니다. 이러한 구별은 사용자 편의를 위해 선택되었습니다. 한편으로는 오타가 있고, 안전 메커니즘은 스크립트가 실수로 잘못된 데이터베이스에서 작동하지 않습니다. 반면에.
프런트엔드(클라이언트) 복사를 수행합니다. 이것은 을 실행하는 작업SQL 복사명령이지만 대신에 백엔드가 지정된 파일을 읽거나 쓰고 있습니다.배트맨 토토읽거나 씁니다 파일을 생성하고 백엔드와 백엔드 사이에 데이터를 라우팅합니다. 로컬 파일 시스템. 이는 파일 접근성과 권한은 서버가 아닌 로컬 사용자의 권한입니다. SQL 수퍼유저 권한은 필요하지 않습니다.
명령어 구문은 다음 구문과 유사합니다.SQL 복사명령(다음에 대한 설명 참조) 세부). 이 때문에 특별한 구문 분석이 수행됩니다. 규칙이 적용됩니다.\복사명령. 특히, 변수 대체 규칙 백슬래시 이스케이프는 적용되지 않습니다.
팁:이 작업은 다음보다 효율적이지 않습니다. 그만큼SQL 복사모든 데이터가 필요하기 때문에 명령 클라이언트/서버 IP 또는 소켓을 통과합니다. 연결. 데이터 양이 많은 경우 다른 기술이 더 나을 수도 있습니다.
참고:해석의 차이에 주목하세요 의표준 입력그리고stdout프론트엔드와 백엔드 사이 복사본: 프런트엔드 복사본에서는 항상 다음을 참조합니다.배트맨 토토의 입력과 출력 스트림. 백엔드 복사본에서표준 입력어디서든 온다복사본체는 (에서 왔습니다. 예를 들어, 다음과 같이 실행되는 스크립트는
-f옵션) 및stdout쿼리 출력을 나타냅니다. 스트림(참조\o메타 명령 아래에).
다음의 저작권 및 배포 조건을 표시합니다.PostgreSQL.
각 관계(테이블, 뷰, 인덱스 또는 시퀀스)에 대해 일치하는패턴, 모든 열, 해당 유형 및 특수 속성을 표시합니다. 와 같은NULL이 아님또는 기본값인 경우 어느. 관련 인덱스, 제약 조건, 규칙 및 트리거 관계가 있는 경우 뷰 정의와 마찬가지로 표시됩니다. 보기입니다. ("일치하는 것은 무늬"아래에 정의되어 있습니다.)
명령 형식\d+이다 동일하지만 테이블과 관련된 모든 주석 열도 표시됩니다.
참고:만약\d이다 a 없이 사용됨패턴인수입니다. 에 해당함\dtvs어느 모든 테이블, 보기 및 시퀀스 목록이 표시됩니다. 이는 순전히 편의를 위한 조치입니다.
사용 가능한 모든 집계 함수를 다음과 함께 나열합니다. 그들이 작동하는 데이터 유형. 만약에패턴(정규 표현식)은 지정하면 일치하는 집계만 표시됩니다.
다음과 일치하는 개체의 설명을 표시합니다.패턴, 또는 전부 인수가 주어지지 않으면 보이는 객체입니다. 그러나 어느 쪽이든 경우에는 설명이 있는 개체만 나열됩니다. ("개체"집계를 다루고, 함수, 연산자, 유형, 관계(테이블, 뷰, 인덱스, 시퀀스, 대형 개체), 규칙 및 트리거) 예를 들어:
=\dd 버전개체 설명 스키마 | 이름 | 개체 | 설명 ------------+---------+----------+--------------- pg_카탈로그 | 버전 | 기능 | PostgreSQL 버전 문자열 (1행)
객체에 대한 설명은 다음을 사용하여 생성할 수 있습니다.댓글 켜기 SQL명령.
참고: 포스트그레SQL개체를 저장합니다 설명은pg_description시스템 테이블.
사용 가능한 모든 도메인(파생 유형)을 나열합니다. 만약에패턴지정되었습니다. 일치하는 도메인만 표시됩니다.
사용 가능한 기능을 목록과 함께 나열합니다 인수 및 반환 유형. 만약에패턴이 지정되었습니다. 일치하는 항목만 기능이 표시됩니다. 양식인 경우\df+이 사용되었습니다. 다음에 대한 추가 정보가 있습니다. 언어와 설명을 포함한 각 기능은 표시됩니다.
참고:혼잡함을 줄이기 위해,\df데이터 유형 I/O를 표시하지 않습니다. 기능. 이는 함수를 무시하여 구현됩니다. 유형을 수락하거나 반환하는cstring.
이것은 실제 명령 이름이 아닙니다: 문자 i, s, t, v, S는 인덱스, 시퀀스, 테이블, 뷰를 나타냅니다. 각각 시스템 테이블. 다음 중 일부 또는 전부를 지정할 수 있습니다. 이 편지는 순서에 상관없이 모든 사람의 목록을 얻기 위해 일치하는 개체. 문자 S는 목록을 제한합니다. 시스템 객체에; S가 없으면 비시스템 개체만 표시됩니다. 만약에"+"다음에 추가됨 명령 이름, 각 개체는 해당 개체와 함께 나열됩니다. 관련된 설명(있는 경우).
만약에패턴이다 지정, 이름이 패턴과 일치하는 객체만 나열되어 있습니다.
이것은 다음의 별칭입니다.\lo_list, 대규모 목록을 표시합니다. 사물.
사용 가능한 연산자를 피연산자와 함께 나열하고 반환 유형. 만약에패턴이 지정되었습니다. 이름이 패턴과 일치하는 연산자가 나열됩니다.
사용 가능한 모든 테이블 목록을 생성합니다. 관련 액세스 권한. 만약에패턴이 지정되었습니다. 테이블만 패턴과 일치하는 이름이 나열됩니다.
명령어그랜트그리고PostgreSQL : 문서 : 7.3 : 젠 토토설정하는 데 사용됩니다. 액세스 권한. 보다그랜트자세한 정보는.
모든 데이터 유형 또는 일치하는 데이터 유형만 나열패턴. 명령 형식\dT+추가 표시 정보.
모든 데이터베이스 사용자를 나열하거나 일치하는 사용자만 나열합니다.패턴.
만약파일 이름이다 지정하면 파일이 편집됩니다. 편집기가 종료된 후 해당 내용은 쿼리 버퍼에 다시 복사됩니다. 그렇지 않은 경우 인수가 주어지면 현재 쿼리 버퍼가 복사됩니다. 임시 파일은 같은 곳에서 편집됩니다. 패션.
새 쿼리 버퍼는 다음에 따라 다시 구문 분석됩니다. 일반적인 규칙배트맨 토토, 여기서 전체 버퍼는 한줄로 처리됩니다. (따라서 스크립트를 만들 수 없습니다. 이쪽으로. 사용\i그렇습니다.) 이 또한 쿼리가 다음으로 끝나는 경우(또는 오히려 포함) 세미콜론이 있으면 즉시 실행됩니다. ~ 안에 다른 경우에는 쿼리 버퍼에서 대기할 뿐입니다.
팁: 배트맨 토토환경 변수를 검색합니다.PSQL_EDITOR, 편집자및영상(이 순서대로) 편집자는 사용. 모두 설정되지 않은 경우,/bin/vi실행되었습니다.
인수를 표준 출력으로 구분하여 인쇄합니다. 공백 하나 뒤에 개행 문자가 옵니다. 이것은 출력에 정보를 삽입하는 데 유용합니다. 스크립트. 예를 들어:
=\echo `날짜`화 10월 26일 21:40:57 CEST 1999
첫 번째 인수가 인용되지 않은 경우-n후행 개행 문자는 다음과 같습니다. 쓴.
팁:다음을 사용하는 경우\o질의를 리디렉션하는 명령 당신이 사용하고 싶은 출력\qecho이 명령 대신.
멀티바이트를 사용하는 경우 클라이언트 인코딩을 설정합니다 인코딩. 인수 없이 이 명령은 다음을 보여줍니다. 현재 인코딩.
정렬되지 않은 쿼리 출력에 대한 필드 구분 기호를 설정합니다. 기본값은 파이프(|). 보다 또한\pset일반적인 방법으로 출력 옵션을 설정합니다.
현재 쿼리 입력 버퍼를 백엔드로 보냅니다. 선택적으로 출력을 다음 위치에 저장합니다.파일 이름또는 출력을 실행할 별도의 Unix 셸명령. 베어\g은 사실상 세미콜론과 동일합니다. 에이\g인수 포함은 a"원샷"대체\o명령.
지정된 구문에 대한 도움말 제공SQL명령. 만약에명령지정되지 않은 경우배트맨 토토모든 항목을 나열합니다. 구문 도움말을 사용할 수 있는 명령입니다. 만약에명령별표입니다 ("*"), 그 다음에는 모두에 대한 구문 도움말SQL명령은 표시됩니다.
참고:입력을 단순화하기 위해 다음 명령을 실행합니다. 여러 단어로 구성되어 있으므로 인용할 필요가 없습니다. 따라서 입력해도 괜찮습니다.\도움말 테이블 변경.
켜짐HTML질의 출력 형식. 만약HTML형식이 이미 켜져 있습니다. 기본 정렬 텍스트 형식으로 다시 전환되었습니다. 이것 명령은 호환성과 편의를 위한 것이지만 참조\pset기타 출력 설정 정보 옵션.
파일에서 입력을 읽습니다.파일 이름그리고 마치 실행합니다 그것은 키보드로 입력되었습니다.
참고:당신이 라인의 라인을 보고 싶다면 화면을 읽는 동안 변수를 설정해야 합니다.
에코에모두.
서버에 있는 모든 데이터베이스와 해당 데이터베이스를 나열합니다. 소유자. 추가하다"+"에 데이터베이스에 대한 설명을 보려면 명령 이름을 사용하세요. 잘. 만약 당신의포스트그레SQL설치가 멀티바이트 인코딩으로 컴파일되었습니다. 지원하는 경우 각 데이터베이스의 인코딩 체계는 다음과 같이 표시됩니다. 잘.
다음으로 큰 개체를 읽습니다.OID 로이드데이터베이스에서 및 쓰기
그것을파일 이름. 참고하세요
이는 서버 기능과 미묘하게 다릅니다lo_export, 다음과 같이 작동합니다.
데이터베이스 서버가 실행하는 사용자의 권한
서버의 파일 시스템과 마찬가지로.
팁:사용\lo_list대형 객체를 알아내기 위해OID.
참고:설명 보기
LO_TRANSACTION변수 모든 대형 물체에 관한 중요한 정보 운영.
파일을 다음에 저장합니다.PostgreSQL "큰 개체". 선택적으로 연결됩니다. 객체와 함께 주어진 코멘트. 예:
foo=\lo_import '/home/peter/pictures/photo.xcf' '내 사진'lo_import 152801
응답은 대형 개체가 수신되었음을 나타냅니다. 원하는 경우 기억해야 할 개체 ID 152801 개체에 다시 액세스할 수 있습니다. 그런 이유로 그것은 항상 사람이 읽을 수 있는 주석을 연결하는 것이 좋습니다. 모든 개체와 함께. 그러면 해당 내용은\lo_list명령.
이 명령은 다음 명령과 미묘하게 다르다는 점에 유의하십시오.
서버측lo_import왜냐하면 로컬 파일에서 로컬 사용자 역할을 하기 때문입니다
서버의 사용자 및 파일이 아닌 시스템
체계.
참고:설명 보기
LO_TRANSACTION변수 모든 대형 물체에 관한 중요한 정보 운영.
전체 목록을 표시합니다PostgreSQL "대형 개체"현재 다음 위치에 저장되어 있습니다. 데이터베이스에 제공된 설명과 함께 제공됩니다.
다음으로 큰 개체를 삭제합니다OID 로이드데이터베이스에서.
팁:사용\lo_list대형 객체를 알아내기 위해OID.
참고:설명 보기
LO_TRANSACTION변수 모든 대형 물체에 관한 중요한 정보 운영.
향후 쿼리 결과를 파일에 저장파일 이름또는 향후 결과 파이프 실행하기 위해 별도의 Unix 셸로 변환명령. 인수가 없으면 지정하면 쿼리 출력이 다음으로 재설정됩니다.stdout.
"쿼리 결과"포함 모든 테이블, 명령 응답 및 통지에서 얻은 데이터베이스 서버 및 다양한 출력 데이터베이스를 쿼리하는 백슬래시 명령(예:\d), 그러나 오류 메시지는 아닙니다.
팁:사이에 텍스트 출력을 삽입하려면 쿼리 결과, 사용\qecho.
현재 쿼리 버퍼를 표준으로 인쇄 산출.
이 명령은 다음의 출력에 영향을 미치는 옵션을 설정합니다. 쿼리 결과 테이블.매개변수어떤 옵션이 무엇인지 설명합니다. 설정됩니다. 의 의미론값그것에 의존하세요.
조정 가능한 인쇄 옵션은 다음과 같습니다:
출력 형식을 다음 중 하나로 설정정렬되지 않음, 정렬, html또는라텍스. 고유한 약어는 다음과 같습니다. 허용된. (즉, 한 글자가 충분한.)
"정렬되지 않음"쓰기 한 줄에 있는 튜플의 모든 필드는 다음으로 구분됩니다. 현재 활성 필드 구분 기호입니다. 이는 의도된 것입니다 읽을 수 있는 출력을 생성하기 위해 다른 프로그램에서(탭으로 구분, 쉼표로 구분)."정렬됨"모드가 표준이고, 사람이 읽을 수 있고 형식이 좋은 텍스트 출력 기본값입니다. 그만큼"HTML"그리고"LaTeX"모드 넣음 out 테이블에 포함되도록 의도된 테이블 해당 마크업 언어를 사용하는 문서. 완전한 문서가 아닙니다! (이건 아닐 수도 있겠네요 너무 극적이야HTML, 그러나 LaTeX에서는 다음을 수행해야 합니다. 완전한 문서 래퍼가 있어야 합니다.)
두 번째 인수는 숫자여야 합니다. ~ 안에 일반적으로 숫자가 높을수록 테두리가 많아지고 테이블에 줄이 있을 수 있지만 이는 테이블에 따라 다릅니다. 특정 형식. 안에HTML모드, 이것은 번역됩니다 직접적으로테두리=...속성, 기타 값만 0(경계 없음), 1(내부 나누기) 행) 및 2(테이블 프레임)가 의미가 있습니다.
일반 형식과 확장 형식 사이를 전환합니다. 확장 형식이 활성화되면 모든 출력에는 두 개의 왼쪽에 필드 이름이 있는 열과 오른쪽에 데이터가 있습니다. 이 모드는 데이터가 다음과 같은 경우에 유용합니다. 평소에는 화면에 맞지 않습니다."수평"모드.
확장 모드는 4개 출력 모두에서 지원됩니다. 모드.
두 번째 인수는 다음과 같아야 하는 문자열입니다. 필드가 null일 때마다 인쇄됩니다. 기본값은 쉽게 오해할 수 있는 내용을 인쇄하지 마십시오. 예를 들어 빈 문자열입니다. 따라서 선택할 수 있습니다. 쓰다\pset 널 '(널)'.
다음에 사용할 필드 구분 기호를 지정합니다. 정렬되지 않은 출력 모드. 그렇게 하면 창조할 수 있습니다. 예를 들어 탭 또는 쉼표로 구분된 출력입니다. 다른 프로그램이 더 선호할 수도 있습니다. 탭을 필드로 설정하려면 구분 기호, 유형\pset 필드ep '\티'. 기본 필드 구분 기호는 다음과 같습니다.'|'(a"파이프"기호).
기본 바닥글 표시를 전환합니다(x행).
다음에서 사용할 레코드(줄) 구분 기호를 지정합니다. 정렬되지 않은 출력 모드. 기본값은 줄바꿈입니다. 성격.
튜플만 표시와 전체 표시 사이를 전환합니다. 전체 디스플레이에는 다음과 같은 추가 정보가 표시될 수 있습니다. 열 머리글, 제목 및 다양한 바닥글. ~ 안에 튜플 전용 모드, 실제 테이블 데이터만 표시됩니다.
이후의 테이블 제목을 설정합니다 인쇄된 테이블. 이는 귀하에게 다음을 제공하는 데 사용될 수 있습니다. 설명 태그를 출력합니다. 인수가 주어지지 않으면, 제목이 설정되지 않았습니다.
참고:이전에는 이것만 영향을 받았습니다.HTML모드. 이제 모든 출력에서 제목을 설정할 수 있습니다 체재.
당신은 어떤 속성이라도 지정할 수 있습니다
안에 배치HTML 테이블태그. 예를 들어 이것은
BE셀패딩또는bgcolor. 당신은
아마도 지정하고 싶지 않을 것입니다.경계여기는 이미 그렇듯이
님이 처리했습니다.\pset
국경.
질의 및 호출을 위한 호출기 사용을 토글합니다.배트맨 토토도움말 출력. 환경 변수인 경우호출기가 설정되면 출력이 다음으로 파이프됩니다. 지정된 프로그램. 그렇지 않으면 플랫폼에 따른 기본값(예:더보기)이 사용됩니다.
어쨌든,배트맨 토토다음 경우에만 호출기를 사용합니다. 적절한 것 같습니다. 이는 무엇보다도 의미하는 바는 출력은 터미널로 향하고 테이블은 일반적으로 화면에 맞지 않습니다. 때문에 인쇄 루틴의 모듈식 특성은 다음과 같습니다. 줄 수를 예측하는 것이 항상 가능한 것은 아닙니다. 실제로 인쇄될 것입니다. 그런 이유로배트맨 토토그렇지 않을 수도 있어요 언제 사용하는지에 대해 매우 차별적인 것처럼 보입니다. 휴대용 소형 무선 호출기.
이러한 다양한 형식이 어떻게 보이는지에 대한 그림은 다음에서 볼 수 있습니다.예섹션.
팁:다양한 단축키 명령이 있습니다 을 위한\pset. 보다\a, \C, \H, \t, \T및\x.
참고:호출하는 것은 오류입니다\pset인수 없음. 미래에 이 호출은 모든 항목의 현재 상태를 표시할 수 있습니다. 인쇄 옵션.
그만두세요배트맨 토토프로그램.
이 명령은 다음과 동일합니다\에코단, 모든 출력은 다음 설정에 따라 쿼리 출력 채널에 기록됩니다.\o.
쿼리 버퍼를 재설정(삭제)합니다.
명령줄 기록을 인쇄하거나 저장하세요.파일 이름. 만약에파일 이름생략되었으며 기록은 표준 출력에 기록됩니다. 이 옵션은 다음과 같은 경우에 사용 가능배트맨 토토입니다 를 사용하도록 구성됨GNU역사 도서관.
참고:현재 버전에서는 그렇지 않습니다. 명령 기록을 저장하는 데 더 오래 필요합니다. 프로그램에서 자동으로 수행됩니다. 종료. 기록도 자동으로 로드됩니다. 매번배트맨 토토시작합니다.
내부 변수 설정이름에값또는 값이 두 개 이상인 경우 주어진, 그들 모두의 연결에. 두 번째가 아니라면 인수가 주어지면 변수는 아무 것도 없이 설정됩니다. 값. 변수를 설정 해제하려면를 사용하세요.\unset명령.
유효한 변수 이름에는 문자, 숫자, 그리고 밑줄. 관련 섹션을 참조하세요.배트맨 토토자세한 내용은 변수를 참조하세요.
어떤 변수든 설정할 수 있지만 당신이 원하는 무엇이든,배트맨 토토여러 변수를 특별하게 취급합니다. 문서화되어 있습니다. 변수에 관한 섹션에서.
참고:이 명령은 다음 명령과 완전히 별개입니다. 그만큼SQL명령SET.
출력 열 이름 제목 표시를 토글하고 행 개수 바닥글. 이 명령은 다음과 같습니다.\pset tuples_only그리고 편의를 위해 제공됩니다.
다음에 배치할 옵션을 지정할 수 있습니다.테이블태그 입력HTML테이블 형식 출력 모드. 이것
명령은 다음과 같습니다.\pset
테이블 속성table_options.
각 SQL 문의 지속 시간 표시를 토글합니다. 밀리초 단위로 소요됩니다.
현재 쿼리 버퍼를 파일에 출력파일 이름또는 파이프로 연결 유닉스 명령명령.
확장 행 형식 모드를 토글합니다. 말 그대로이다 에 해당함\pset 퍼지는.
사용 가능한 모든 테이블 목록을 생성합니다. 관련 액세스 권한. 만약에패턴이 지정되었습니다. 테이블만 패턴과 일치하는 이름이 나열됩니다.
명령어부여그리고PostgreSQL : 문서 : 7.3 : 젠 토토설정하는 데 사용됩니다. 액세스 권한. 보다부여더 많은 정보를 원하시면.
이것은 다음의 별칭입니다.\dp ("표시 권한").
별도의 Unix 쉘로 탈출하거나 Unix를 실행합니다. 명령명령. 그만큼 인수는 더 이상 해석되지 않으며 쉘은 그대로.
백슬래시에 대한 도움말 정보 보기("\") 명령.
다양한\d명령은 a를 받아들입니다.패턴지정할 매개변수 표시할 개체 이름입니다. 패턴이 해석됩니다 SQL 식별자와 마찬가지로 따옴표가 없는 문자는 강제로 소문자로, 큰따옴표(") 대소문자 변환으로부터 문자를 보호하고 식별자에 공백을 포함할 수 있습니다. 이내에 큰따옴표, 쌍으로 된 큰따옴표는 단일 큰따옴표로 줄어듭니다. 결과 이름에 따옴표를 붙입니다. 예를 들어,FOO"BAR"BAZ다음과 같이 해석됩니다.fooBARbaz및"이상해요"" 이름"되다이상한" 이름.
좀 더 흥미롭게도,\d패턴 다음의 사용을 허용합니다.*말하다"모든 문자 시퀀스"및?말하다"아무거나 단일 문자". (이 표기법은 Unix와 유사합니다. 쉘 파일 이름 패턴.) 고급 사용자도 사용할 수 있습니다. 문자 클래스와 같은 정규식 표기법 예[0-9]일치하다"모든 숫자". 이것들 중 하나를 만들려면 패턴 일치 문자는 문자 그대로 해석됩니다. 큰따옴표로 묶으세요.
(따옴표가 없는) 점이 포함된 패턴은 다음과 같이 해석됩니다. 스키마 이름 패턴 뒤에 개체 이름 패턴이 옵니다. 을 위한 예,\dt foo*.bar*모두 표시 이름이 다음으로 시작하는 스키마의 테이블foo테이블 이름이 다음으로 시작함바. 점이 나타나지 않으면 패턴이 일치하는 것입니다. 현재 스키마 검색에 표시되는 객체만 길.
언제든지패턴매개변수가 완전히 생략되었습니다.\d명령은 보이는 모든 객체를 표시합니다 현재 스키마 검색 경로에서. 의 모든 개체를 보려면 데이터베이스, 패턴을 사용하세요*.*.
배트맨 토토변수 제공 일반적인 Unix 명령 셸과 유사한 대체 기능입니다. 이 기능은 새로운 기능이고 아직은 그다지 정교하지는 않지만 앞으로 확장할 계획이 있습니다. 변수는 단순히 이름/값 쌍입니다. 여기서 값은 다음 문자열일 수 있습니다. 어떤 길이든. 변수를 설정하려면배트맨 토토메타 명령\세트:
testdb=\set foo bar
변수를 설정합니다"foo"에 값"바". 검색하려면 변수의 내용은 이름 앞에 콜론을 붙이고 슬래시 명령의 인수로 사용하십시오.
testdb=\에코 :foo바
참고:의 인수\세트동일한 대체가 적용됩니다 다른 명령과 마찬가지로 규칙을 따릅니다. 따라서 당신은 구성 할 수 있습니다 다음과 같은 흥미로운 참고자료\세트 :foo '뭔가'그리고 얻으세요"소프트 모래밭"또는"변수 변수"의펄또는PHP명성입니다. 불행하게도(혹은 다행스럽게도?) 할 수 있는 방법이 없다. 이러한 구성에 유용한 모든 것. 반면에,\설정 바 :foo완벽합니다 변수를 복사하는 유효한 방법입니다.
당신이 전화한다면\세트1초도 없이 인수인 경우 변수는 단순히 설정되지만 값은 없습니다. 에게 변수를 설정 해제(또는 삭제)하려면 다음 명령을 사용하세요.\unset.
배트맨 토토의 내부 변수 이름은 문자, 숫자, 밑줄로 구성될 수 있습니다. 주문하고 원하는 수만큼 주문하세요. 다수의 일반 변수 특별 대우를 받습니다.배트맨 토토. 특정 옵션을 나타냅니다. 런타임에 변경할 수 있는 설정 변수의 값을 나타내거나 변수의 일부 상태를 나타냅니다. 애플리케이션. 이 변수를 어떤 용도로든 사용할 수 있지만 다른 목적으로는 권장되지 않습니다. 행동이 정말 빨리 이상해 질 수 있습니다. 에 의해 관례상 특별히 처리되는 모든 변수는 다음과 같이 구성됩니다. 대문자(숫자와 밑줄도 가능). 에게 앞으로는 최대한의 호환성을 보장하고 그러한 것을 피하십시오. 변수. 특별히 처리된 모든 변수 목록 다음과 같습니다.
DBNAME현재 연결되어 있는 데이터베이스의 이름 에게. 데이터베이스에 연결할 때마다 설정됩니다. (프로그램 시작 포함), 설정 해제할 수 있습니다.
에코다음으로 설정된 경우"모두", 입력된 모든 줄 또는
스크립트는 표준 출력에 기록되기 전에
구문 분석되거나 실행됩니다. 프로그램에서 이를 지정하려면
시작하려면 스위치를 사용하세요.-a. 으로 설정된 경우"쿼리",
배트맨 토토그냥 모두 인쇄
백엔드로 전송되는 쿼리입니다. 에 대한 옵션
이것은-e.
ECHO_HIDDEN이 변수가 설정되고 백슬래시 명령이 데이터베이스를 쿼리하면 쿼리가 먼저 표시됩니다. 이것 공부할 수 있는 방법포스트그레SQL내부 및 제공 귀하의 프로그램에서도 유사한 기능을 제공합니다. 설정하면 변수를 값으로noexec, 쿼리는 방금 표시되었지만 실제로 백엔드로 전송되어 실행되지 않습니다.
인코딩현재 클라이언트 멀티바이트 인코딩입니다. 만약 당신이 멀티바이트 문자를 사용하도록 설정되지 않았습니다. 이 변수는 항상 포함됩니다"SQL_ASCII".
HIST컨트롤이 변수가 다음으로 설정된 경우무시 공간, a로 시작하는 줄 공백은 기록 목록에 입력되지 않습니다. 로 설정한 경우 값무시됨, 라인 이전 기록 라인과 일치하는 내용은 입력되지 않습니다. 에이 값둘 다 무시결합 두 가지 옵션. 설정되지 않거나 다른 값으로 설정된 경우 위의 것보다 모든 줄을 대화형 모드로 읽습니다. 기록 목록에 저장됩니다.
참고:이 기능은 뻔뻔스럽게도 에서 표절함배시.
HISTSIZE명령에 저장할 명령의 수 역사. 기본값은 500입니다.
참고:이 기능은 뻔뻔스럽게도 에서 표절함배시.
호스트현재 연결되어 있는 데이터베이스 서버 호스트 에게. 데이터베이스에 연결할 때마다 설정됩니다. (프로그램 시작 포함), 설정 해제할 수 있습니다.
IGNOREEOF설정되지 않은 경우, 다음을 보냅니다.EOF문자(보통제어+D)을 대화형 세션배트맨 토토종료됩니다 애플리케이션. 숫자 값으로 설정하면 그 만큼EOF문자는 애플리케이션이 종료되기 전에는 무시됩니다. 만약 변수가 설정되었지만 숫자 값이 없습니다. 기본값 10입니다.
참고:이 기능은 뻔뻔스럽게도 에서 표절함배쉬.
LASTOID다음에서 반환된 마지막 영향을 받은 OID의 값 an삽입또는lo_insert명령. 이 변수는 단지 결과가 나올 때까지 유효함을 보장합니다. 다음SQL명령은 표시되었습니다.
LO_TRANSACTION다음을 사용하는 경우포스트그레SQL대형 객체 인터페이스 하나의 데이터에 맞지 않는 데이터를 특별히 저장하기 위해 튜플의 경우 모든 작업은 튜플에 포함되어야 합니다. 거래 블록. (대형 문서를 참조하십시오. 자세한 내용은 객체 인터페이스를 참조하세요.) 이후배트맨 토토방법이 없습니다 이미 진행 중인 거래가 있는지 알려주세요. 내부 명령 중 하나를 호출합니다(\lo_export, \lo_import, \lo_unlink) 임의의 작업이 필요합니다. 행동. 이 작업은 모든 항목을 롤백하는 것일 수 있습니다. 이미 진행 중인 거래 또는 그러한 거래를 저지르거나 전혀 아무것도 하지 않습니다. 마지막 경우에는 직접 제공해야 합니다.거래 시작/커밋차단하지 않으면 결과는 다음과 같습니다 예측할 수 없음(대개 원하는 결과가 발생함) 어떠한 경우에도 작업이 수행되지 않습니다.)
당신이 원하는 것을 선택하려면 이 변수를 설정하세요 다음 중 하나에"롤백", "커밋", 또는"아무것도". 기본값은 롤백입니다. 거래. 한 개 또는 몇 개만 로드하고 싶다면 물건은 괜찮습니다. 그러나, 만약 당신이 의도하고 있다면 많은 대형 개체를 전송하는 경우 다음을 수행하는 것이 좋습니다. 모든 항목에 대해 하나의 명시적인 트랜잭션 블록을 제공합니다. 명령.
ON_ERROR_STOP기본적으로 비대화형 스크립트에서
잘못된 형식과 같은 오류SQL쿼리 또는 내부 메타 명령,
처리가 계속됩니다. 이것은 전통적이었습니다.
의 행동배트맨 토토그러나
때로는 바람직하지 않습니다. 이 변수가 설정되면
스크립트 처리가 즉시 종료됩니다. 만약
스크립트가 다른 스크립트에서 호출되어 종료됩니다.
같은 방식으로. 가장 바깥쪽 스크립트가 아닌 경우
대화형에서 호출됨배트맨 토토세션을 사용하는 대신-f옵션,배트맨 토토오류 코드 3을 반환합니다.
이 경우를 치명적인 오류 조건과 구별
(오류 코드 1).
포트현재 접속하고 있는 데이터베이스 서버 포트 연결되었습니다. 이는 다음에 연결할 때마다 설정됩니다. 데이터베이스(프로그램 시작 포함)이지만 설정되지 않았습니다.
PROMPT1PROMPT2PROMPT3이것은 프롬프트가 무엇인지 지정합니다배트맨 토토문제는 다음과 같습니다 좋다. 보다"프롬프트"아래.
조용함이 변수는 명령줄과 동일합니다
옵션-q. 아마도
대화형 모드에서는 그다지 유용하지 않습니다.
SINGLELINE이 변수는 명령줄 옵션에 의해 설정됩니다.-S. 설정을 해제하거나 재설정할 수 있습니다.
런타임에.
싱글스텝이 변수는 명령줄과 동일합니다
옵션-s.
사용자현재 연결되어 있는 데이터베이스 사용자. 데이터베이스에 연결할 때마다 설정됩니다. (프로그램 시작 포함), 설정 해제할 수 있습니다.
추가로 유용한 기능배트맨 토토변수는 당신이 할 수 있다는 것입니다 대리자 ("보간") 그들 정규로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이것을 분석하면 두 개를 대체합니다. 백슬래시를 하나만 사용한 다음 대체를 수행합니다. 아마도 어느 시점에서 당신은 모든 유닉스가 훌륭하다고 생각했을 것입니다. 명령은 동일한 이스케이프 문자를 사용합니다. 그리고 이건 무시하는 거다 모든 백슬래시를 다음과 같이 이스케이프 처리해야 할 수도 있다는 사실 글쎄 왜냐하면SQL텍스트 상수도 특정 해석의 대상이 됩니다. ~ 안에 그렇다면 파일을 준비하는 것이 더 나을 수도 있습니다 외부적으로.
콜론이 쿼리에 합법적으로 나타날 수 있으므로 다음은 규칙 적용: 변수가 설정되지 않은 경우 문자는 순서"콜론+이름"아님 변경되었습니다. 어쨌든 백슬래시를 사용하여 콜론을 벗어날 수 있습니다. 해석으로부터 보호하기 위해. (콜론 구문은 변수는 표준입니다SQL포함된 쿼리 언어의 경우ecpg. 배열 슬라이스의 콜론 구문 유형 캐스트는 다음과 같습니다.포스트그레SQL확장, 따라서 갈등.)
프롬프트배트맨 토토문제
원하는 대로 맞춤 설정할 수 있습니다. 세 가지 변수PROMPT1, PROMPT2및PROMPT3문자열 및 특수 이스케이프 포함
프롬프트의 모양을 설명하는 시퀀스입니다. 즉각적인
1은 다음과 같은 경우에 발행되는 일반 프롬프트입니다.배트맨 토토새 쿼리를 요청합니다. 프롬프트 2는
쿼리 입력 중에 더 많은 입력이 예상되는 경우 발행됩니다.
쿼리가 세미콜론으로 끝나지 않았거나 따옴표가 있습니다.
닫히지 않았습니다. 프롬프트 3은 다음을 실행할 때 발행됩니다.SQL 복사명령을 입력하면 됩니다.
터미널의 튜플.
해당 프롬프트 변수의 값이 인쇄됩니다 문자 그대로, 퍼센트 기호("%")이 발생했습니다. 다음에 따라 문자가 있는 경우 특정 다른 텍스트가 대신 대체됩니다. 한정된 대체 항목은 다음과 같습니다.
전체 호스트 이름(도메인 이름 포함) 데이터베이스 서버 또는[로컬]만일 연결이 Unix 도메인 소켓을 통해 이루어지거나, 또는[지역:/dir/이름], Unix의 경우 도메인 소켓이 기본적으로 컴파일되지 않았습니다. 위치.
데이터베이스 서버의 호스트 이름, 잘림 첫 번째 점 뒤 또는[로컬]연결이 Unix를 통해 이루어지는 경우 도메인 소켓.
데이터베이스 서버가 연결된 포트 번호 청취.
귀하가 연결된 사용자 이름(로컬이 아님) 시스템 사용자 이름).
현재 데이터베이스의 이름.
좋아요%/, 그러나 출력은"~"(물결표) 데이터베이스인 경우 기본 데이터베이스입니다.
현재 사용자가 데이터베이스 수퍼유저인 경우, a"#", 그렇지 않으면 a"".
일반적으로 프롬프트 1에서"=", 하지만"^"한 줄에 있는 경우 모드 및"!"세션인 경우 데이터베이스와의 연결이 끊어졌습니다(다음과 같은 경우에 발생할 수 있음)\연결실패). 프롬프트 2에서 시퀀스는 다음으로 대체됩니다."-", "*", 여부에 따라 작은따옴표 또는 큰따옴표배트맨 토토더 많은 것을 기대합니다 쿼리가 아직 종료되지 않았기 때문에 입력되었습니다. 당신은 a 안에 있어요/* ... */댓글을 달거나 인용문 안에 있기 때문입니다. 프롬프트 3에서 시퀀스는 아무것도 해결되지 않습니다.
만약숫자시작 와 함께0x나머지 문자는 16진수로 해석되며 해당 코드의 문자는 다음과 같습니다. 대체. 첫 번째 숫자가 다음과 같은 경우:0문자는 다음과 같이 해석됩니다. 8진수이고 해당 문자는 다음과 같습니다. 대체. 그렇지 않으면 십진수가 가정됩니다.
값은배트맨 토토, 변수이름. 섹션을 참조하세요."변수"자세한 내용은.
다음의 출력명령, 보통과 유사"백틱"대체.
프롬프트에 퍼센트 기호를 삽입하려면 다음을 입력하세요.%%. 기본 프롬프트는 다음과 같습니다. 에 해당함'%/%R%# '프롬프트용 1과 2 그리고' '프롬프트용 3.
참고:이 기능은 뻔뻔스럽게 표절되었습니다 에서tcsh.
배트맨 토토지원합니다Readline라이브러리 편리한 라인 편집 및 검색. 명령 내역은 다음과 같습니다. 라는 파일에 저장됩니다..배트맨 토토_history홈 디렉토리에 있으며 다음 경우에 다시 로드됨배트맨 토토시작 위로. 탭 완성도 지원됩니다. 논리는 다음과 같다고 주장하지 않습니다.SQL파서. 가능한 경우,배트맨 토토이를 사용하도록 자동으로 구축되었습니다. 특징. 어떤 이유로 탭이 마음에 들지 않는 경우 완료되면 파일에 넣어서 끌 수 있습니다. 명명된.inputrc당신의 집에서 예배 규칙서:
$if 배트맨 토토 비활성화 완료 설정 $endif
(이것은 a가 아닙니다.배트맨 토토하지만readline기능. 읽어보세요 자세한 내용은 문서를 참조하세요.)
초기화 파일 디렉터리(.배트맨 토토rc) 및 명령 기록 파일 (.배트맨 토토_history).
쿼리 결과가 화면에 맞지 않으면 이 명령을 통해 파이프됩니다. 일반적인 값은 다음과 같습니다.더보기또는덜. 그만큼 기본값은 플랫폼에 따라 다릅니다. 호출기의 사용은 다음과 같습니다. 를 사용하여 비활성화됨\pset명령.
연결할 기본 데이터베이스
기본 연결 매개변수
다음에서 사용하는 편집기\e명령. 변수는 나열된 순서대로 검사됩니다. 첫 번째 설정된 것이 사용됩니다.
다음에 의해 실행되는 명령\!명령.
임시 파일을 저장하는 디렉토리입니다. 기본값은/tmp.
시작하기 전에,배트맨 토토파일에서 명령을 읽고 실행하려고 시도합니다.$HOME/.배트맨 토토rc. 다음과 같은 경우에 사용될 수 있습니다. 취향에 맞게 클라이언트나 서버를 설정합니다(\세트그리고세트명령).
명령줄 기록이 파일에 저장됩니다.$HOME/.배트맨 토토_history.
전생에서배트맨 토토단일 문자 백슬래시의 첫 번째 인수를 허용했습니다. 명령 없이 바로 시작하는 명령 공백 사이. 호환성을 위해 이것은 여전히 어느 정도 지원되지만 설명하지는 않겠습니다. 자세한 내용은 여기에 사용하지 않는 것이 좋습니다. 이상해지면 메시지를 보내려면 이 점을 명심하세요. 예를 들어
testdb=\foo필드 구분 기호는 "oo"입니다.
아마도 예상했던 것과는 다를 것입니다.
배트맨 토토순조롭게 작동합니다 동일한 버전의 서버를 사용합니다. 다른 뜻은 아니지 조합은 완전히 실패하지만 미묘하고 미묘하지는 않습니다. 문제가 발생할 수 있습니다. 백슬래시 명령은 특히 서버 버전이 다르면 실패할 가능성이 높습니다.
동안 Control-C 누르기"복사 안에"(서버로 전송된 데이터)가 가장 많이 표시되지 않습니다. 이상적인 행동. 다음과 같은 메시지를 받으면"COPY 상태를 먼저 종료해야 합니다", 간단히 말해서 다음을 입력하여 연결을 재설정하십시오.\c - -.
참고:이 섹션에서는 몇 가지 예만 보여줍니다. 특정배트맨 토토. 당신이 배우고 싶다SQL또는 받기 익숙하다PostgreSQL, 다음에 포함된 튜토리얼을 읽어보고 싶을 수도 있습니다. 분포.
첫 번째 예는 쿼리를 여러 항목에 분산시키는 방법을 보여줍니다. 입력 라인. 변경 프롬프트를 확인하세요.
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=SELECT 두 번째, 첫 번째 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개