이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 스포츠 토토 베트맨버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

토토 베이

토토 베이 - 표의 토토 베이

시놉시스

[with [recursive]with_query[, ...]]
[only]에서 토토 베이table_name[ *] [[as]alias]
    [사용from_item[, ...]]
    [ 어디조건| 어디서cursor_name]
    [반환 [with (old | new asoutput_alias [, ...] ) ]
                { * | output_expression[[as]output_name ] } [, ...] ]

설명

토토 베이만족하는 행을 토토 베이합니다여기서지정된 테이블의 조항. 인 경우여기서절은없고, 그 효과는 테이블의 모든 행을 토토 베이하는 것입니다. 결과는 유효하지만 빈 테이블입니다.

Truncate테이블에서 모든 행을 제거하는 더 빠른 메커니즘을 제공합니다.

데이터베이스의 다른 테이블에 포함 된 정보를 사용하여 테이블에서 행을 토토 베이하는 두 가지 방법이 있습니다. 하위 선택을 사용하거나 추가 테이블을 지정하는사용절. 어떤 기술이 더 적절한 지 특정 상황에 따라 다릅니다.

선택 사항반환절의 원인토토 베이실제로 토토 베이 된 각 행을 기반으로 값을 계산하고 반환합니다. 테이블의 열을 사용한 모든 표현 및/또는에 언급 된 다른 테이블의 열사용를 계산할 수 있습니다. 의 구문반환목록은 출력 목록의 목록과 동일합니다select.

당신은가 있어야합니다.토토 베이테이블에서 토토 베이할 권한과select사용조항 또는 값이 읽는조건.

매개 변수

with_Query

thewith절에서 이름으로 언급 할 수있는 하나 이상의 하위 쿼리를 지정할 수 있습니다.토토 베이쿼리. 보다PostgreSQL : 문서 : 개발 : 7.8. 배트맨 토토와 함께 (공통 테이블 표현식)select자세한 내용.

table_name

행을 토토 베이하기 위해 테이블의 이름 (선택적으로 스키마 자격). 만약에전용테이블 이름 앞에 지정되어 있으며, 일치 행은 지정된 테이블에서만 토토 베이됩니다. 만약에전용지정되지 않으며, 일치 행은 이름이 지정된 테이블에서 상속되는 테이블에서 토토 베이됩니다. 선택적으로,*테이블 이름 후에 지정하여 자손 테이블이 포함되어 있음을 명시 적으로 표시 할 수 있습니다.

alias

대상 테이블의 대체 이름. 별칭이 제공되면 테이블의 실제 이름을 완전히 숨 깁니다. 예를 들어, 주어진foo에서 foo에서 f 토토 베이, 나머지토토 베이진술은이 표를로 언급해야합니다.fnotfoo.

from_item

다른 테이블에서 열이 표시 될 수있는 테이블 표현식여기서조건. 이것은와 동일한 구문을 사용합니다.Froma 조항select진술; 예를 들어, 테이블 이름의 별칭을 지정할 수 있습니다. 대상 테이블을 A로 반복하지 마십시오.from_item자체 교육을 설정하려고하지 않는 한 (이 경우에 별명으로 나타나야합니다from_item).

조건

유형 값을 반환하는 표현식부울. 이 표현이 반환되는 행만true토토 베이됩니다.

cursor_name

a에서 사용할 커서의 이름현재의 전류조건. 토토 베이 될 행은이 커서에서 가장 최근에 가져온 행입니다. 커서는에서 그룹화가 아닌 쿼리 여야합니다.토토 베이의 대상 테이블. 참고전류의 위치부울 조건과 함께 지정할 수 없습니다. 보다선언커서 사용에 대한 자세한 내용은현재의 전류.

output_alias

선택적 대체 이름에 대한old또는NEW반환목록.

기본적으로 대상 테이블의 이전 값을 쓰면 반환 할 수 있습니다old.column_name또는old.*, 새로운 값은 서면으로 반환 할 수 있습니다NEW.column_name또는NEW.*. 별칭이 제공되면 이러한 이름은 숨겨져 있으며 이전 또는 새 행을 별칭을 사용하도록 지칭해야합니다. 예를 들어돌아와서 (OS OS O, NEW NIS N) O.*, n.*로 돌아갑니다..

output_expression

​​|토토 베이각 행이 토토 베이 된 후 명령. 표현식은에 의해 이름이 지정된 테이블의 열 이름을 사용할 수 있습니다.table_name또는 테이블에 나열사용. 쓰다*모든 열을 반환하려면

열 이름 또는*old또는NEW또는 해당output_aliasforold또는NEW, 기존 또는 새 값을 반환합니다. 자격이없는 열 이름 또는*또는 열 이름 또는*대상 테이블 이름 또는 별칭을 사용하여 자격을 갖추거나 이전 값을 반환합니다.

간단한토토 베이, 모든 새로운 값은입니다.NULL. 그러나,ON DELETE규칙을 유발합니다삽입또는업데이트대신 실행 되려면 새 값이 비 일 수 있습니다NULL.

output_name

반환 된 열에 사용할 이름.

출력

성공적인 완료시 A토토 베이명령은 양식의 명령 태그를 반환

토토 베이count

thecount토토 베이 된 행 수입니다. 그 숫자는와 일치하는 행의 수보다 적을 수 있습니다.조건토토 베이가 a를 억제했을 때토토 베이 전트리거. 만약에countis 0, 쿼리에 의해 행이 토토 베이되지 않았다 (이것은 오류로 간주되지 않음).

IF토토 베이명령이 포함되어반환조항, 결과는 a의 결과와 유사합니다.select반환명령에 의해 토토 베이 된 행을 통해 계산 된 목록.

노트

PostgreSQL에서 다른 테이블의 기준 열을 참조 할 수 있습니다.어디다른 테이블을 지정하여 조건사용절. 예를 들어, 주어진 프로듀서가 제작 한 모든 필름을 토토 베이하려면 다음을 수행 할 수 있습니다.

제작자를 사용하여 필름에서 토토 베이
  여기서 producer_id = producers.id 및 producers.name = 'foo';

본질적으로 일어나고있는 일은 여기서 관계매가 있습니다Filmsand프로듀서영화토토 베이로 표시되는 행입니다. 이 구문은 표준이 아닙니다. 보다 표준적인 방법은 다음과 같습니다.

필름에서 토토 베이
  여기서 producer_id in (이름 = 'foo')

경우에 따라 조인 스타일은 서브 스셀렉트 스타일보다 쓰기가 더 쉽거나 더 빠릅니다.

예제

모든 영화를 토토 베이하지만 뮤지컬 :

Kind < '뮤지컬'; Where Films에서 토토 베이

테이블 지우기영화:

영화에서 토토 베이;

완료된 작업 토토 베이, 토토 베이 된 행에 대한 자세한 내용을 반환합니다 :

상태 = '완료'반환 *;의 작업에서 토토 베이

행 토토 베이작업커서C_TASKS현재 위치 :

c_tasks의 전류가있는 작업에서 토토 베이;

Limit조항토토 베이,에 설명 된 동일한 방법을 사용하여 유사한 효과를 얻을 수 있습니다.의 문서화업데이트:

delete_batch as (
  user_logs에서 l.ctid를 l로 선택하십시오
    여기서 l.status = '아카이브'
    l.creation_date의 주문
    업데이트를 위해
    10000을 제한하십시오
))
user_logs에서 dl로 토토 베이하십시오
  delete_batch 사용 Del
  여기서 dl.ctid = del.ctid;

호환성

이 명령은에 부합합니다.SQL표준을 제외하고사용and반환조항은PostgreSQL사용 능력과 마찬가지로 확장자withwith토토 베이.

참조

Truncate