이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 스포츠 토토 베트맨버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

토토 베이

DELETE — 테이블 행 토토 베이

시놉시스

[ [ 재귀 ] 사용with_query[, ...] ]
[만]에서 토토 베이테이블_이름[ * ] [ [ AS ]별칭]
    [ 사용 중from_item[, ...] ]
    [어디에서조건| 현재는 어디입니까?cursor_name]
    [ 반환 중 [ WITH (  이전 | 새  ASoutput_alias [, ...] ) ]
                { * | 출력_표현[ [ 그대로 ]output_name ] } [, ...] ]

설명

토토 베이다음을 만족하는 행을 토토 베이합니다.어디지정된 테이블의 절. 만약어디절이 없으면 테이블의 모든 행이 토토 베이됩니다. 결과는 유효하지만 비어 있는 테이블입니다.

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

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

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

당신은 다음을 가지고 있어야 합니다.토토 베이테이블에서 토토 베이할 수 있는 권한 및선택다음의 모든 테이블에 대한 권한사용 중절 또는 그 값이에서 읽혀지는 경우조건.

매개변수

with_query

위드절을 사용하면에서 이름으로 참조할 수 있는 하나 이상의 하위 쿼리를 지정할 수 있습니다.토토 베이질의. 참조PostgreSQL : 문서 : 개발 : 7.8. 배트맨 토토와 함께 (공통 테이블 표현식)그리고선택자세한 내용은.

테이블_이름

행을 토토 베이할 테이블의 이름(선택적으로 스키마 한정). 만일이 테이블 이름 앞에 지정되어 있으며, 일치하는 행은 명명된 테이블에서만 토토 베이됩니다. 만일이 지정되지 않으면 명명된 테이블에서 상속되는 모든 테이블에서도 일치하는 행이 토토 베이됩니다. 선택적으로,*테이블 이름 뒤에 지정하여 하위 테이블이 포함되어 있음을 명시적으로 나타낼 수 있습니다.

별칭

대상 테이블의 대체 이름입니다. 별칭이 제공되면 테이블의 실제 이름이 완전히 숨겨집니다. 예를 들어, 주어진foo AS f에서 토토 베이, 나머지토토 베이문은 이 테이블을 다음과 같이 참조해야 합니다.f아님foo.

from_item

다른 테이블의 열을 테이블에 표시할 수 있는 테이블 표현식어디조건. 이는 다음과 동일한 구문을 사용합니다.발신a의 절선택성명; 예를 들어 테이블 이름의 별칭을 지정할 수 있습니다. 대상 테이블을 다음과 같이 반복하지 마십시오.from_item자체 조인을 설정하고 싶지 않은 경우(이 경우 별칭과 함께 나타나야 합니다.from_item).

조건

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

cursor_name

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

output_alias

다음에 대한 선택적 대체 이름오래된또는신규돌아오는 중목록.

기본적으로 대상 테이블의 이전 값은 쓰기를 통해 반환될 수 있습니다.오래된.열_이름또는오래됨.*, 다음과 같이 쓰면 새 값이 반환될 수 있습니다.새로운.컬럼_이름또는신규.*. 별칭이 제공되면 이러한 이름은 숨겨지며 별칭을 사용하여 이전 행이나 새 행을 참조해야 합니다. 예를 들어(이전 AS o, 신규 AS n) o.*, n.*으로 반환.

출력_표현

다음에 의해 계산되고 반환되는 표현식토토 베이17560_17660테이블_이름또는 다음에 나열된 테이블사용 중. 쓰기*모든 열을 반환합니다.

열 이름 또는*다음을 사용하여 한정될 수 있습니다.오래된또는신규또는 해당output_aliasfor오래된또는신규, 이전 값이나 새 값이 반환되도록 합니다. 규정되지 않은 열 이름 또는*또는 열 이름 또는*대상 테이블 이름 또는 별칭을 사용하여 한정하면 이전 값을 반환합니다.

간단히 말하면토토 베이, 모든 새로운 값은NULL. 그러나 만약에토토 베이 중규칙으로 인해삽입또는업데이트대신 실행하려면 새 값이 아닐 수 있습니다.NULL.

output_name

반환된 열에 사용할 이름입니다.

출력

성공적으로 완료되면 a토토 베이명령은 다음 형식의 명령 태그를 반환합니다.

토토 베이개수

개수은 토토 베이된 행 수입니다. 숫자는와 일치하는 행 수보다 작을 수 있습니다.조건토토 베이가 a에 의해 억제되었을 때토토 베이 전트리거. 만일개수이 0이면 쿼리로 토토 베이된 행이 없습니다(오류로 간주되지 않음).

만약에토토 베이명령에 다음이 포함됨돌아오는 중절, 결과는 a의 결과와 유사합니다.선택에 정의된 열과 값을 포함하는 문돌아오는 중목록, 명령으로 토토 베이된 행에 대해 계산됩니다.

참고

포스트그레SQL다음에 있는 다른 테이블의 열을 참조할 수 있습니다.어디조건은 다음에서 다른 테이블을 지정하여사용 중절. 예를 들어 특정 제작자가 제작한 모든 영화를 토토 베이하려면 다음을 수행할 수 있습니다.

제작자를 사용하여 영화에서 토토 베이
  WHERE producer_id = producers.id AND producers.name = 'foo';

여기서 본질적으로 일어나는 일은 다음 사이의 결합입니다.영화그리고생산자, 모두 성공적으로 참여했습니다.영화행이 토토 베이 표시되고 있습니다. 이 구문은 표준이 아닙니다. 보다 표준적인 방법은 다음과 같습니다.

영화에서 토토 베이
  WHERE producer_id IN (WHERE 이름 = 'foo'에서 생산자로부터 ID 선택);

어떤 경우에는 조인 스타일이 하위 선택 스타일보다 작성하기 쉽고 실행이 더 빠릅니다.

뮤지컬을 제외한 모든 영화 토토 베이:

종류가 < '뮤지컬'인 영화에서 토토 베이;

테이블 지우기영화:

영화에서 토토 베이;

완료된 작업을 토토 베이하고 토토 베이된 행의 전체 세부정보를 반환합니다:

상태가 '완료'인 작업에서 토토 베이 RETURNING *;

행 토토 베이작업커서가 있는 곳c_tasks현재 위치:

현재 c_tasks가 있는 작업에서 토토 베이;

없는 동안제한토토 베이,에서 설명한 것과 동일한 방법을 사용하면 비슷한 효과를 얻을 수 있습니다.문서업데이트:

delete_batch AS 사용(
  user_logs AS l에서 l.ctid 선택
    l.status = '보관됨'
    주문 기준: l.creation_date
    업데이트를 위해
    10000개 제한
)
user_logs AS dl에서 토토 베이
  delete_batch AS del 사용
  dl.ctid = del.ctid;

호환성

이 명령은 다음을 준수합니다.SQL표준, 다음을 제외하고사용 중그리고돌아오는 중절은포스트그레SQL확장 기능 및 사용 기능함께토토 베이.

또한 참조

잘라내기