Amazon Redshift는 2025년 11월 1일부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. Python UDF를 사용하려면 이 날짜 이전에 UDF를 생성하세요. 기존 Python UDF는 정상적으로 계속 작동합니다. 자세한 내용은 블로그 게시물
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);
아무런 조건도 지정되지 않은 경우 테이블에 있는 모든 행이 삭제됩니다.
사용 노트
-
DELETE 작업은 다음 중 하나에 연결된 Amazon Redshift 스트리밍 구체화된 뷰에서 실행될 때 배타적 잠금을 유지합니다.
Amazon Kinesis 데이터 스트림
Amazon Managed Streaming for Apache Kafka 주제
Confluent Cloud Kafka 주제와 같은 지원되는 외부 스트림
자세한 내용은 구체화된 뷰로 스트리밍 모으기 섹션을 참조하세요.
예시
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;