쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

DELETE - Amazon Redshift

DELETE

행을 테이블에서 삭제합니다.

참고

단일 SQL 문의 최대 크기는 16MB입니다.

구문

[ WITH [RECURSIVE] common_table_expression [, common_table_expression , ...] ] DELETE [ FROM ] { table_name | materialized_view_name } [ { USING } table_name, ... ] [ WHERE condition ]

파라미터

WITH 절

하나 이상의 common-table-expressions를 지정하는 절(옵션)입니다. WITH 절 섹션을 참조하세요.

FROM

USING 절이 지정되어 있을 때를 제외하면 FROM 키워드는 선택 사항입니다. delete from event;delete event; 문은 똑같이 EVENT 테이블에서 모든 행을 제거하는 작업을 수행합니다.

참고

테이블에서 모든 행을 삭제하려면 테이블을 TRUNCATE합니다. TRUNCATE는 DELETE보다 훨씬 더 효율적이며 VACUUM 및 ANALYZE가 필요하지 않습니다. 하지만 TRUNCATE는 이 명령이 실행되는 트랜잭션을 커밋합니다.

table_name

임시 또는 영구 테이블입니다. 테이블의 소유자 또는 테이블에 대한 DELETE 권한을 가진 사용자만이 테이블에서 행을 삭제할 수 있습니다.

대규모 테이블에서 정규화되지 않은 빠른 삭제 작업을 하려면 TRUNCATE 명령의 사용을 고려하세요(TRUNCATE 참조).

참고

테이블에서 많은 수의 행을 삭제한 후

  • 테이블을 완전히 비워 스토리지 공간을 회수하고 행을 다시 정렬합니다.

  • 테이블을 분석하여 쿼리 플래너에 대한 통계를 업데이트합니다.

materialized_view_name

구체화된 뷰 DELETE 문은 구체화된 뷰로 스트리밍 모으기에서 사용되는 구체화된 뷰에서 작동합니다. 구체화된 뷰의 소유자 또는 구체화된 뷰에 대한 DELETE 권한을 가진 사용자만 구체화된 뷰에서 행을 삭제할 수 있습니다.

사용자에게 RLS 무시 권한이 부여되지 않은 행 수준 보안(RLS) 정책을 사용하는 스트리밍 수집을 위해 구체화된 뷰에서 DELETE를 실행할 수 없습니다. 여기에는 예외가 있습니다. DELETE를 수행하는 사용자에게 IGNORE RLS가 부여되면 성공적으로 실행됩니다. 자세한 내용은 RLS 정책 소유권 및 관리를 참조하세요.

USING table_name, ...

USING 키워드는 WHERE 절 조건에서 추가적인 테이블이 참조될 때 테이블 목록을 소개하는 데 사용됩니다. 예를 들어, 다음 문은 EVENT 및 SALES 테이블에 대한 조인 조건을 충족시키는 EVENT 테이블에서 모든 행을 삭제합니다. SALES 테이블은 FROM 목록에 명시적으로 명명되어야 합니다.

delete from event using sales where event.eventid=sales.eventid;

USING 절에서 대상 테이블 이름을 반복하는 경우 DELETE 작업은 자가 조인을 실행합니다. 같은 쿼리를 쓰는 방법의 대안으로서, WHERE 절에서 USING 구문 대신 하위 쿼리를 사용할 수 있습니다.

WHERE condition

행 삭제를 조건과 일치하는 행으로 제한하는 선택적인 절입니다. 예를 들어, 조건은 열에 대한 제한, 조인 조건 또는 쿼리의 결과를 바탕으로 하는 조건일 수 있습니다. 쿼리는 DELETE 명령의 대상이 아닌 테이블을 참조할 수 있습니다. 예:

delete from t1 where col1 in(select col2 from t2);

아무런 조건도 지정되지 않은 경우 테이블에 있는 모든 행이 삭제됩니다.

예시

CATEGORY 테이블에서 모든 행을 삭제합니다.

delete from category;

CATEGORY 테이블에서 CATID 값이 0~9 사이의 값인 행을 삭제합니다.

delete from category where catid between 0 and 9;

SALES 테이블에 자신의 SELLERID 값이 존재하지 않는 LISTING 테이블에서 행을 삭제합니다.

delete from listing where listing.sellerid not in(select sales.sellerid from sales);

다음 두 쿼리는 모두 EVENT 테이블에 대한 조인과 CATID 열에 대한 추가적인 제한 사항을 바탕으로 CATEGORY 테이블에서 한 개의 행을 삭제합니다.

delete from category using event where event.catid=category.catid and category.catid=9;
delete from category where catid in (select category.catid from category, event where category.catid=event.catid and category.catid=9);

다음 쿼리는 mv_cities 구체화된 뷰에서 모든 행을 삭제합니다. 이 예의 구체화된 뷰 이름은 샘플입니다.

delete from mv_cities;
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.