ALTER TABLE コマンドを使用して実行します。
データの更新
ALTER TABLE...UPDATE コマンドを使用します。
<expression> は、<filter_expr> を満たすカラムの新しい値です。<expression> は、そのカラムと同じデータ型であるか、CAST 演算子を使って同じデータ型に変換できる必要があります。<filter_expr> は、データの各行に対して UInt8 (ゼロまたは非ゼロ) の値を返す必要があります。複数の UPDATE <column> ステートメントは、カンマ区切りで 1 つの ALTER TABLE コマンドにまとめられます。
例:
-
次のようなミューテーション を使うと、Dictionary ルックアップで
visitor_idsを新しいものに置き換えて更新できます。 -
1 つのコマンドで複数の値を変更したほうが、複数のコマンドに分けるより効率的な場合があります。
-
分片テーブルでは、ミューテーション を
ON CLUSTERで実行できます。
プライマリキーまたはソートキーの一部であるカラムは更新できません。
データの削除
ALTER TABLE コマンドを使用します。
<filter_expr> は、データの各行に対して UInt8 値を返す必要があります。
例
-
カラムの値が配列内のいずれかの値に含まれるレコードを削除します。
-
このクエリは何を変更するでしょうか?
テーブル内のすべてのデータを削除する場合は、
TRUNCATE TABLE [<database].]<table> コマンドを使用するほうが効率的です。このコマンドは ON CLUSTER でも実行できます。DELETE ステートメント のドキュメントページを参照してください。
論理削除
DELETE FROM コマンドがあります。削除された行は直ちに削除済みとしてマークされ、以降のすべてのクエリ結果から自動的に除外されるため、パーツのマージを待ったり、FINAL キーワードを使用したりする必要はありません。データのクリーンアップはバックグラウンドで非同期に実行されます。
Title カラムにテキスト hello を含む hits テーブル内のすべての行を削除します。
- この機能は、
MergeTreeテーブルエンジンファミリーでのみ利用できます。 - 論理削除はデフォルトで同期的に実行され、すべてのレプリカが削除を処理するまで待機します。この動作は、
lightweight_deletes_sync設定 で制御されます。