지정된 필터링 표현식과 일치하는 데이터를 수정합니다. 뮤테이션으로 구현됩니다.
ALTER TABLE 접두사 때문에 이 구문은 SQL을 지원하는 대부분의 다른 시스템과 다릅니다. 이는 OLTP 데이터베이스의 유사한 쿼리와 달리, 이 작업이 자주 사용하도록 설계되지 않은 비용이 큰 작업임을 나타내기 위한 것입니다.
filter_expr는 UInt8 유형이어야 합니다. 이 쿼리는 filter_expr가 0이 아닌 값을 갖는 행에서 지정된 컬럼 값을 해당 표현식의 값으로 업데이트합니다. 값은 CAST 연산자를 사용해 컬럼 유형으로 변환됩니다. 프라이머리 키 또는 파티션 키 계산에 사용되는 컬럼은 업데이트할 수 없습니다.
하나의 쿼리에는 쉼표로 구분된 여러 명령을 포함할 수 있습니다.
쿼리 처리의 동기 여부는 mutations_sync 설정으로 정의됩니다. 기본값은 비동기입니다.
관련 항목
표현식에서 업데이트된 컬럼을 읽는 MATERIALIZED 컬럼은
뮤테이션에 따라 다시 계산되므로 저장된 값이 새 데이터와 일관성을 유지합니다.
EPHEMERAL 컬럼은 INSERT가 수행되는 동안에만 존재하며
저장되지 않습니다. 따라서 이를 기반으로 계산된 MATERIALIZED 컬럼은 뮤테이션으로 다시 계산할 수 없습니다.
이러한 컬럼은 INSERT 시점에 계산된 값을 유지하므로, 이후에는 해당
표현식과 더 이상 일치하지 않게 됩니다:
m은 INSERT 중에 계산된 값인 8이며, 2 + 7이 아닙니다. e의 값은 이를 제공한
INSERT 외부에서는 사용할 수 없습니다. 이러한 이유로 컬럼을 건너뛸 경우 뮤테이션은 서버 로그에 경고를 기록합니다. 이러한 컬럼을 최신 상태로 업데이트하려면 영향을 받는 행을 다시 INSERT하십시오.