UPDATE — 테이블 행 범퍼카 토토
[ [ 재귀 ] 사용with_query[, ...] ] 범퍼카 토토 [만]테이블_이름[ * ] [ [ AS ]별칭] 세트컬럼_이름= {표현| 기본값 | (컬럼_이름[, ...] ) = [ 행 ] (표현| 기본값 [, ...] ) | (열_이름[, ...] ) = (하위 선택) [, ...] [ 에서from_item[, ...] ] [ 어디조건| 현재는 어디입니까?cursor_name] [ 복귀 중 * |출력_표현[ [ AS ]output_name] } [, ...] ]
범퍼카 토토조건을 만족하는 모든 행의 지정된 열 값을 변경합니다. 수정할 열만 언급하면 됩니다.SET절; 명시적으로 수정되지 않은 열은 이전 값을 유지합니다.
데이터베이스의 다른 테이블에 포함된 정보를 사용하여 테이블을 수정하는 두 가지 방법이 있습니다: 하위 선택을 사용하거나 다음에서 추가 테이블을 지정하는 것입니다.발신절. 어떤 기술이 더 적절한지는 특정 상황에 따라 다릅니다.
선택사항돌아오는 중절 원인범퍼카 토토실제로 범퍼카 토토된 각 행을 기반으로 값을 계산하고 반환합니다. 테이블의 열 및/또는에 언급된 다른 테이블의 열을 사용하는 모든 표현식발신, 계산할 수 있습니다. 테이블 열의 새(범퍼카 토토 후) 값이 사용됩니다. 의 구문돌아오는 중목록은 출력 목록의 목록과 동일합니다.선택.
당신은 다음을 가지고 있어야 합니다범퍼카 토토테이블에 대한 권한 또는 적어도 범퍼카 토토되도록 나열된 열에 대한 권한입니다. 또한 다음이 있어야 합니다.선택값이 읽혀지는 모든 열에 대한 권한표현또는조건.
with_query그위드절을 사용하면 이름으로 참조할 수 있는 하나 이상의 하위 쿼리를 지정할 수 있습니다.범퍼카 토토질의. 보다PostgreSQL : 문서 : 14 : 7.8. 토토 사이트 추천와 함께 (공통 테이블 표현식)그리고선택자세한 내용은.
테이블_이름범퍼카 토토할 테이블의 이름(선택적으로 스키마 한정). 만약에만이 테이블 이름 앞에 지정되어 있으며 일치하는 행은 명명된 테이블에서만 범퍼카 토토됩니다. 만약에만이 지정되지 않으면 명명된 테이블에서 상속되는 모든 테이블에서 일치하는 행도 범퍼카 토토됩니다. 선택적으로,*테이블 이름 뒤에 지정하여 하위 테이블이 포함되어 있음을 명시적으로 나타낼 수 있습니다.
별칭대상 테이블의 대체 이름입니다. 별칭이 제공되면 테이블의 실제 이름이 완전히 숨겨집니다. 예를 들어, 주어진foo AS f 범퍼카 토토, 나머지범퍼카 토토문은 이 테이블을 다음과 같이 참조해야 합니다.f아님foo.
컬럼_이름이름이 지정된 테이블의 열 이름테이블_이름. 필요한 경우 하위 필드 이름이나 배열 첨자로 열 이름을 한정할 수 있습니다. 대상 열의 사양에 테이블 이름을 포함하지 마세요. 예:UPDATE table_name SET table_name.col = 1잘못되었습니다.
표현열에 할당할 표현식입니다. 표현식은 이 열과 테이블에 있는 다른 열의 이전 값을 사용할 수 있습니다.
기본값열을 기본값으로 설정합니다(특정 기본 표현식이 할당되지 않은 경우 NULL이 됩니다). ID 열은 연관된 시퀀스에 의해 생성된 새 값으로 설정됩니다. 생성된 열의 경우 이를 지정하는 것이 허용되지만 생성 표현식에서 열을 계산하는 일반적인 동작만 지정합니다.
하위 SELECTA 선택앞의 괄호로 묶인 열 목록에 나열된 만큼의 출력 열을 생성하는 하위 쿼리입니다. 하위 쿼리는 실행 시 행을 1개 이상 생성해서는 안 됩니다. 하나의 행이 생성되면 해당 열 값이 대상 열에 할당됩니다. 행이 생성되지 않으면 대상 열에 NULL 값이 할당됩니다. 하위 쿼리는 범퍼카 토토 중인 테이블의 현재 행의 이전 값을 참조할 수 있습니다.
from_item다른 테이블의 열이 표시되도록 허용하는 테이블 표현식어디조건 및 범퍼카 토토 표현식. 이는 다음과 동일한 구문을 사용합니다.발신a의 절선택문장; 예를 들어 테이블 이름의 별칭을 지정할 수 있습니다. 대상 테이블을 다음과 같이 반복하지 마십시오.from_item자체 조인을 의도하지 않는 한(이 경우 별칭과 함께 나타나야 합니다.from_item).
조건유형의 값을 반환하는 표현식부울. 이 표현식이 반환되는 행만참범퍼카 토토됩니다.
cursor_name에서 사용할 커서의 이름현재 위치조건. 범퍼카 토토할 행은 이 커서에서 가장 최근에 가져온 행입니다. 커서는에서 비그룹화 쿼리여야 합니다.범퍼카 토토의 대상 테이블입니다. 참고하세요현재 위치부울 조건과 함께 지정할 수 없습니다. 보다선언커서 사용에 대한 자세한 내용은현재 위치.
출력_표현다음에 의해 계산되고 반환되는 표현식범퍼카 토토18247_18347테이블_이름또는 다음에 나열된 테이블발신. 쓰다*모든 열을 반환합니다.
output_name반환된 열에 사용할 이름입니다.
성공적으로 완료되면,범퍼카 토토명령은 다음 형식의 명령 태그를 반환합니다.
범퍼카 토토개수
그개수는 값이 변경되지 않은 일치하는 행을 포함하여 범퍼카 토토된 행 수입니다. 숫자는와 일치하는 행 수보다 작을 수 있습니다.조건범퍼카 토토가 다음에 의해 억제되었을 때범퍼카 토토 전트리거. 만약에개수is 0, 쿼리로 범퍼카 토토된 행이 없습니다(오류로 간주되지 않음).
만약범퍼카 토토명령에 다음이 포함됨돌아오는 중절, 결과는 a의 결과와 유사합니다.선택에 정의된 열과 값을 포함하는 문돌아오는 중명령으로 범퍼카 토토된 행에 대해 계산된 목록입니다.
언제발신절이 존재하는 경우 본질적으로 발생하는 일은 대상 테이블이 다음에서 언급된 테이블에 조인된다는 것입니다.from_item목록이며 조인의 각 출력 행은 대상 테이블에 대한 범퍼카 토토 작업을 나타냅니다. 사용시발신조인이 수정될 각 행에 대해 최대 하나의 출력 행을 생성하는지 확인해야 합니다. 즉, 대상 행은 다른 테이블의 둘 이상의 행에 조인되어서는 안 됩니다. 그렇다면 조인 행 중 하나만 사용하여 대상 행을 범퍼카 토토하지만 어느 행이 사용될지는 쉽게 예측할 수 없습니다.
이러한 불확정성 때문에 하위 선택 내에서만 다른 테이블을 참조하는 것이 더 안전하지만 조인을 사용하는 것보다 읽기가 더 어렵고 속도가 느린 경우가 많습니다.
분할된 테이블의 경우 행을 범퍼카 토토하면 포함된 파티션의 파티션 제약 조건을 더 이상 충족하지 못할 수 있습니다. 이 경우 파티션 트리에 이 행이 파티션 제약 조건을 충족하는 다른 파티션이 있으면 행이 해당 파티션으로 이동됩니다. 해당 파티션이 없으면 오류가 발생합니다. 뒤에서 행 이동은 실제로 다음과 같습니다.삭제그리고삽입작업.
동시 발생 가능성이 있습니다범퍼카 토토또는삭제이동되는 행에서 직렬화 실패 오류가 발생합니다. 세션 1이 다음을 수행하고 있다고 가정합니다.범퍼카 토토파티션 키에 대해 동시에 이 행이 표시되는 동시 세션 2는 다음을 수행합니다.범퍼카 토토또는삭제이 행에 대한 작업입니다. 이 경우 세션 2의범퍼카 토토또는삭제행 이동을 감지하고 직렬화 실패 오류를 발생시킵니다(항상 SQLSTATE 코드 '40001'과 함께 반환됨). 이런 일이 발생하면 애플리케이션은 트랜잭션을 다시 시도할 수 있습니다. 테이블이 분할되지 않거나 행 이동이 없는 일반적인 경우 세션 2는 새로 범퍼카 토토된 행을 식별하고 다음 작업을 수행합니다.범퍼카 토토/삭제이 새로운 행 버전에서.
행은 로컬 파티션에서 외부 테이블 파티션으로 이동할 수 있지만(외부 데이터 래퍼가 튜플 라우팅을 지원하는 경우) 외부 테이블 파티션에서 다른 파티션으로 이동할 수는 없습니다.
단어 변경드라마에극적열에종류테이블의영화:
UPDATE 영화 SET 종류 = '드라마틱' WHERE 종류 = '드라마';
테이블의 한 행에서 온도 항목을 조정하고 강수량을 기본값으로 재설정날씨:
UPDATE 날씨 설정 temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = DEFAULT WHERE 도시 = '샌프란시스코' AND 날짜 = '2003-07-03';
동일한 작업을 수행하고 범퍼카 토토된 항목을 반환합니다:
UPDATE 날씨 설정 temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = DEFAULT WHERE 도시 = '샌프란시스코' AND 날짜 = '2003-07-03' temp_lo, temp_hi, prcp 반환 중;
동일한 범퍼카 토토를 수행하려면 대체 열 목록 구문을 사용하십시오:
범퍼카 토토 날씨 설정 (temp_lo, temp_hi, prcp) = (temp_lo+1, temp_lo+15, DEFAULT) WHERE 도시 = '샌프란시스코' AND 날짜 = '2003-07-03';
다음을 사용하여 Acme Corporation의 계정을 관리하는 영업사원의 판매 건수를 증가시킵니다.발신절 구문:
UPDATE 직원 SET sales_count = sales_count + 1 FROM 계정 WHERE account.name = 'Acme Corporation' AND 직원.ID = account.sales_person;
동일한 작업을 수행합니다. 하위 선택을 사용하여어디절:
직원 범퍼카 토토 SET sales_count = sales_count + 1 WHERE id = (이름 = 'Acme Corporation'인 계정에서 sales_person 선택);
현재 할당된 판매원과 일치하도록 계정 테이블의 연락처 이름을 범퍼카 토토하십시오.
계정 설정 범퍼카 토토(contact_first_name, contact_last_name) =
(판매원에게서 이름, 성 선택
salesmen.id = account.sales_id);
조인을 사용하면 비슷한 결과를 얻을 수 있습니다.
계정 범퍼카 토토 SET contact_first_name = first_name,
contact_last_name = 성_이름
판매원으로부터 salesmen.id = account.sales_id;
그러나 다음과 같은 경우 두 번째 쿼리에서 예상치 못한 결과가 나타날 수 있습니다.판매원.id은 고유 키가 아니지만 첫 번째 쿼리는 여러 개가 있는 경우 오류가 발생하도록 보장됩니다.id일치합니다. 또한 특정 항목과 일치하는 항목이 없는 경우계정.판매_ID항목, 첫 번째 쿼리는 해당 이름 필드를 NULL로 설정하지만 두 번째 쿼리는 해당 행을 전혀 범퍼카 토토하지 않습니다.
현재 데이터와 일치하도록 요약 테이블의 통계를 범퍼카 토토합니다.
범퍼카 토토 요약 s SET (sum_x, sum_y, avg_x, avg_y) =
(SELECT sum(x), sum(y), avg(x), avg(y) FROM 데이터 d
d.group_id = s.group_id);
재고 수량과 함께 새 재고 항목을 삽입하려고 시도합니다. 항목이 이미 존재하는 경우 대신 기존 항목의 재고 수를 범퍼카 토토하십시오. 전체 트랜잭션을 실패하지 않고 이를 수행하려면 저장점을 사용하십시오.
시작;
-- 기타 작업
세이브포인트 sp1;
INSERT INTO wines VALUES('Chateau Lafite 2003', '24');
-- 고유 키 위반으로 인해 위의 작업이 실패했다고 가정합니다.
-- 이제 다음 명령을 실행합니다.
sp1로 롤백합니다.
범퍼카 토토 와인 세트 재고 = 재고 + 24 WHERE 와인 이름 = 'Chateau Lafite 2003';
-- 다른 작업을 계속하고 결국에는
저지르다;
변경종류테이블의 열영화커서가 있는 행에서c_films현재 위치:
범퍼카 토토 영화 세트 종류 = 'Dramatic' 현재 c_films가 있는 곳;
이 명령은 다음을 준수합니다.SQL표준, 다음을 제외하고발신그리고돌아오는 중절은PostgreSQL확장 기능 및 사용 기능위드와범퍼카 토토.
일부 다른 데이터베이스 시스템은 다음을 제공합니다.발신대상 테이블이 다시 나열되는 옵션발신. 그렇지 않아요PostgreSQL해석발신. 이 확장 프로그램을 사용하는 애플리케이션을 포팅할 때는 주의하세요.
표준에 따르면, 괄호로 묶인 대상 열 이름의 하위 목록에 대한 소스 값은 올바른 열 수를 산출하는 행 값 표현식일 수 있습니다.PostgreSQL소스 값만 허용행 생성자또는 하위-선택. 개별 열의 범퍼카 토토된 값은 다음과 같이 지정할 수 있습니다.기본값행 생성자의 경우, 하위 내부는 아님선택.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.