윈 토토 - 테이블의 윈 토토
[[recursive]with_Query
[, ...]] 윈 토토 [만]table_name
[ *] [[as]별명
] 세트column_name
=표현
| 기본값 | (column_name
[, ...]) = [row] (표현
| 기본값 [, ...]) | (column_name
[, ...]) = (sub-select
) [, ...] [ 에서from_item
[, ...]] [ 어디조건
| 어디서cursor_name
] [반환 * |output_expression
[[as]output_name
] [, ...]]
윈 토토
상태를 만족하는 모든 행에서 지정된 열의 값을 변경합니다. 수정 될 열만 언급해야합니다.set
절; 명시 적으로 수정되지 않은 열은 이전 값을 유지합니다.
데이터베이스의 다른 테이블에 포함 된 정보를 사용하여 테이블을 수정하는 두 가지 방법이 있습니다. 하위 선택을 사용하거나 추가 테이블을 지정하는From
절. 어떤 기술이 더 적절한 지 특정 상황에 따라 다릅니다.
선택 사항반환
절의 원인윈 토토
실제로 윈 토토 된 각 행을 기반으로 값을 계산하고 반환합니다. 테이블의 열을 사용한 모든 표현 및/또는에 언급 된 다른 테이블의 열From
, 계산할 수 있습니다. 테이블 열의 새로운 (사후 윈 토토) 값이 사용됩니다. 의 구문반환
목록은 출력 목록의 목록과 동일합니다select
.
당신은가 있어야합니다.윈 토토
테이블의 특권 또는 최소한 윈 토토 될 열에서. 당신은 또한가 있어야합니다.select
값에서 값을 읽는 모든 열의 특권표현
또는조건
.
With_Query
thewith
절에서 이름으로 언급 할 수있는 하나 이상의 하위 쿼리를 지정할 수 있습니다.윈 토토
쿼리. 보다PostgreSQL : 문서 : 17 : 7.8. 스포츠 토토 사이트와 함께 (공통 테이블 표현식)andselect자세한 내용.
table_name
윈 토토 할 테이블의 이름 (선택적으로 스키마 자격). 만약에전용
테이블 이름 앞에 지정되어 있으며, 일치 행은 명명 된 테이블에서만 윈 토토됩니다. 만약에전용
지정되지 않았으며, 일치 행은 이름이 지정된 테이블에서 상속되는 테이블에서도 윈 토토됩니다. 선택적으로,*
테이블 이름 후에 지정하여 자손 테이블이 포함되어 있음을 명시 적으로 표시 할 수 있습니다.
별명
대상 테이블의 대체 이름. 별칭이 제공되면 테이블의 실제 이름을 완전히 숨 깁니다. 예를 들어, 주어진foo 윈 토토 foo
, 나머지윈 토토
진술은이 테이블을로 언급해야합니다.F
notfoo
.
column_name
|table_name
. 열 이름은 필요한 경우 하위 필드 이름 또는 배열 첨자로 자격을 갖추 수 있습니다. 대상 열 사양에 테이블 이름을 포함하지 마십시오 (예 :윈 토토 table_name set table_name.col = 1
무효.
표현
열에 할당하는 표현식. 표현식은 테이블 의이 값과 다른 열의 기존 값을 사용할 수 있습니다.
기본값
열을 기본값으로 설정합니다 (특정 기본 표현식이 할당되지 않은 경우 NULL이됩니다). ID 열은 관련 시퀀스에 의해 생성 된 새로운 값으로 설정됩니다. 생성 된 열의 경우,이를 지정하는 것은 허용되지만 단지 생성 표현식에서 열을 계산하는 정상적인 동작을 지정합니다..
Sub-Select
aselect
이전의 괄호 화 된 열 목록에 나열된 많은 출력 열을 생성하는 하위 쿼리. 하위 쿼리는 실행될 때 1 행을 넘어서는 안됩니다. 하나의 행을 생성하면 열 값이 대상 열에 할당됩니다. 행이 없으면 행 값이 대상 열에 할당됩니다. 하위 쿼리는 윈 토토중인 테이블의 현재 행의 기존 값을 참조 할 수 있습니다.
from_item
다른 테이블에서 열이 표시 될 수있는 테이블 표현식여기서
조건 및 윈 토토 표현식. 이것은와 동일한 구문을 사용합니다.From
a 조항select
진술; 예를 들어, 테이블 이름의 별칭을 지정할 수 있습니다. 대상 테이블을 A로 반복하지 마십시오.from_item
자체 교육을 의도하지 않는 한 (이 경우에 별명으로 나타나야합니다from_item
).
조건
유형의 값을 반환하는 표현식부울
. 이 표현이 반환되는 행만true
윈 토토됩니다.
cursor_name
a에서 사용할 커서의 이름현재의 전류
조건. 윈 토토 될 행은이 커서에서 가장 최근에 가져온 행입니다. 커서는에서 그룹화가 아닌 쿼리 여야합니다.윈 토토
의 대상 테이블. 참고현재의 전류
부울 조건과 함께 지정할 수 없습니다. 보다선언커서 사용에 대한 자세한 내용은전류의 위치
.
output_expression
|윈 토토
각 행이 윈 토토 된 후 명령. 표현식은에 의해 이름이 지정된 테이블의 열 이름을 사용할 수 있습니다.table_name
또는 테이블에 나열된From
. 쓰다*
모든 열을 반환하려면
output_name
반환 된 열에 사용할 이름.
성공적인 완료시윈 토토
명령은 양식의 명령 태그를 반환
윈 토토count
thecount
값이 변경되지 않은 일치 행을 포함하여 행이 윈 토토되었습니다. 그 숫자는와 일치하는 행의 수보다 적을 수 있습니다.조건
a에 의해 윈 토토가 억제되는 경우윈 토토 전
트리거. 만약에count
is 0, 쿼리에 의해 행이 윈 토토되지 않았다 (이것은 오류로 간주되지 않음).
윈 토토
명령이 포함되어반환
조항, 결과는 a의 결과와 유사합니다.select
반환
목록, 명령에 의해 윈 토토 된 행을 통해 계산됩니다.
언제From
조항이 존재합니다. 본질적으로 발생하는 일은 대상 테이블이에 언급 된 테이블에 결합 된 것입니다.from_item
목록 및 조인의 각 출력 행은 대상 테이블의 윈 토토 작업을 나타냅니다. 사용시From
결합이 각 행에 대해 최대 하나의 출력 행을 생성해야합니다. 다시 말해, 대상 행은 다른 테이블에서 둘 이상의 행에 결합해서는 안됩니다. 그렇다면, 결합 행 중 하나만 사용하여 대상 행을 윈 토토하지만 사용될 제품은 쉽게 예측할 수 없습니다..
이 불확실성으로 인해 하위 선택 내에서 다른 테이블 만 참조하는 것은 더 안전하지만 종종 가입을 사용하는 것보다 읽기가 어렵고 느리게합니다..
분할 된 테이블의 경우 행을 윈 토토하면 더 이상 포함 된 파티션의 파티션 제약 조건을 충족시키지 못할 수 있습니다. 이 경우,이 행이 파티션 제약 조건을 충족시키는 파티션 트리에 다른 파티션이 있으면 행은 해당 파티션으로 이동합니다. 그러한 파티션이 없으면 오류가 발생합니다. 무대 뒤에서 행 움직임은 실제로입니다.삭제
및삽입
작동.
동시 일 가능성이 있습니다윈 토토
또는삭제
이동중인 행에서 직렬화 실패 오류가 발생합니다. 세션 1이 수행 중이라고 가정합니다윈 토토
파티션 키에서, 그 동안이 행이 보이는 동시 세션 2는 an을 수행합니다.윈 토토
또는삭제
이 행에서 작동합니다. 그러한 경우 세션 2의윈 토토
또는삭제
행 움직임을 감지하고 직렬화 실패 오류가 발생합니다 (항상 SQLSTATE 코드 '40001'으로 반환). 신청서는 거래가 발생하면 거래를 다시 시도 할 수 있습니다. 테이블이 분할되지 않거나 행 움직임이없는 일반적인 경우 세션 2는 새로 윈 토토 된 행을 식별하고를 수행했을 것입니다.윈 토토
/삭제
이 새 행 버전에서.
행은 로컬 파티션에서 외국 테이블 파티션으로 이동할 수 있지만 (외국 데이터 래퍼가 튜플 라우팅을 지원하는 경우) 외국 테이블 파티션에서 다른 파티션으로 이동할 수 없습니다..
한 파티션에서 다른 파티션으로 행을 이동하려는 시도는 외국 키가 소스 파티션의 조상을 직접 참조하는 경우윈 토토
쿼리.
단어 변경드라마
to드라마
열에서Kind
표의Films
:
윈 토토 영화 세트 종류 = 'dramatic'where where 'drama';
온도 항목 조정 및 테이블의 한 줄에서 기본값으로 강수량을 재설정날씨
:
윈 토토 날씨 세트 temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = default 여기서 도시 = '샌프란시스코'및 날짜 = '2003-07-03';
동일한 작업을 수행하고 윈 토토 된 항목을 반환합니다.
윈 토토 날씨 세트 temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = default 여기서 도시 = '샌프란시스코'및 날짜 = '2003-07-03' 반환 temp_lo, temp_hi, prcp;
대체 열 목록 구문을 사용하여 동일한 윈 토토를 수행하십시오 :
윈 토토 날씨 세트 (temp_lo, temp_hi, prcp) = (temp_lo+1, temp_lo+15, 기본값) 여기서 도시 = '샌프란시스코'및 날짜 = '2003-07-03';
ACME Corporation의 계정을 관리하는 영업 사원의 판매 수를 촉진합니다.From
조항 구문 :
직원 윈 토토 세트 Sales_Count = Sales_Count + 1 계정에서 여기서 accounts.name = 'Acme Corporation' and Employees.id = accounts.sales_person;
에서 하위 선택을 사용하여 동일한 작업을 수행합니다여기서
절 :
직원 윈 토토 Set Sales_Count = Sales_Count + 1 여기서 id = (이름 = 'acme corporation');이면 계정에서 sales_person을 선택하십시오.
현재 지정된 영업 사원과 일치하도록 계정 테이블의 연락처 이름 윈 토토 :
윈 토토 계정 세트 (contact_first_name, contact_last_name) = (직원에서 First_name, Last_name을 선택하십시오 where Employees.id = accounts.sales_person);
가입으로 유사한 결과를 얻을 수 있습니다.
윈 토토 계정 세트 contact_first_name = first_name, contact_last_name = last_name 직원의 직원에서 id = accounts.sales_person;
그러나 두 번째 쿼리는 예상치 못한 결과를 제공 할 수 있습니다직원
.id
는 고유 키가 아니며, 첫 번째 쿼리는 여러 개가 있으면 오류가 발생하도록 보장됩니다id
일치합니다. 또한 특정과 일치하지 않는 경우계정
.sales_person
항목, 첫 번째 쿼리는 해당 이름 필드를 NULL로 설정하는 반면, 두 번째 쿼리는 해당 행을 전혀 윈 토토하지 않습니다..
현재 데이터와 일치하도록 요약 테이블의 통계 윈 토토 :
SOMPARY S SET (sum_x, sum_y, avg_x, avg_y) = (SOLE SOLE SOM (X), SUM (y), avg (x), avg (y) data d 여기서 d.group_id = s.group_id);
재고량과 함께 새 재고 품목을 삽입하려고 시도합니다. 항목이 이미 존재하는 경우 대신 기존 품목의 재고 수를 윈 토토하십시오. 전체 트랜잭션에 실패하지 않고이 작업을 수행하려면 SavePoints를 사용하십시오.
시작; - 다른 작업 SavePoint SP1; 와인 값에 삽입 ( 'Chateau Lafite 2003', '24'); - 고유 한 주요 위반으로 인해 위의 실패가 발생한다고 가정합니다. - 이제 우리는 다음과 같은 명령을 발행합니다. SP1 로의 롤백; 윈 토토 와인 세트 주식 = 스톡 + 24 여기서 Winename = 'Chateau Lafite 2003'; - 다른 작업을 계속하고 결국 저지르다;
변경Kind
표의 열영화
커서의 행에C_FILMS
현재 위치 :
윈 토토 필름 세트 c_films의 전류에서
많은 행에 영향을 미치는 윈 토토는 테이블 팽창, 복제 지연 증가 및 잠금 경합 증가와 같은 시스템 성능에 부정적인 영향을 줄 수 있습니다. 그러한 상황에서는 더 작은 배치로 작동을 수행하는 것이 합리적 일 수 있습니다.진공
배치 사이의 테이블에서 작동. 없지만Limit
조항윈 토토
, a를 통해 유사한 효과를 얻을 수 있습니다.PostgreSQL : 문서 : 17 : 7.8. 스포츠 토토 사이트와 함께 (공통 테이블 표현식)그리고 자기 접합. 표준PostgreSQL테이블 액세스 방법, 시스템 열의 자체 합의CTID매우 효율적입니다 :
work_item에서 w.ctid를 w로 선택하십시오 여기서 w.status = 'active'및 w.num_retries 10 W.retry_timestamp의 주문 윈 토토를 위해 제한 5000 )) work_item set status = '실패'윈 토토 EMR로서 초과 _max_retries에서 여기서 work_item.ctid = emr.ctid;
이 명령은 행이 윈 토토되지 않을 때까지 반복해야합니다. AN 사용주문 by
절 항목은 명령이 윈 토토 될 행을 우선 순위로 삼도록 허용합니다. 또한 동일한 주문을 사용하는 경우 다른 윈 토토 작업으로 교착 상태를 방지 할 수도 있습니다. 잠금 경합이 우려되는 경우스킵 잠긴
|CTE여러 명령이 동일한 행을 윈 토토하는 것을 방지합니다. 그러나 그때 최종윈 토토
없음스킵 잠긴
또는Limit
일치하는 행이 간과되지 않도록하려면 필요합니다.
이 명령은에 부합합니다.SQL표준을 제외하고From
and반환
조항은PostgreSQL사용 능력과 마찬가지로 확장with
with윈 토토
.
일부 다른 데이터베이스 시스템은 A를 제공합니다.From
대상 테이블이 다시 나열되어야하는 옵션From
. 그것은 방법이 아닙니다PostgreSQL해석From
. 이 확장자를 사용하는 응용 프로그램을 포팅 할 때주의하십시오.
표준에 따르면, 대상 열 이름의 괄호로 된 하위 목록의 소스 값은 올바른 열의 열을 산출하는 행 값 표현식 일 수 있습니다..PostgreSQL소스 값이 A 만 허용합니다.행 생성자또는 하위select
. 개별 열의 윈 토토 된 값은로 지정할 수 있습니다.기본값
행-건설자 케이스에서는 하위 내부에 있지 않음select
.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면