Tüm Ürünler
Search
Belge Merkezi

MaxCompute:TRUNCATE TABLE

Son Güncelleme:Oct 04, 2026

Açıklama

TRUNCATE TABLE ifadesi, tablo şemasını, izinleri ve meta verileri koruyarak bir tablodaki veya belirtilen bölümlerdeki tüm verileri kaldırır. Tabloyu tamamen silen DROP TABLE ifadesinden farklı olarak TRUNCATE TABLE tablo yapısını korur; böylece veriler hemen ardından tekrar eklenebilir. Tek tek satır silme işlemlerini taramadığı veya günlüklemediği için DELETE ifadesinden çok daha hızlı çalışır.

Söz dizimi

Bölümlenmemiş bir tabloyu boşaltma

TRUNCATE TABLE <table_name>;

Belirli bölümleri boşaltma

TRUNCATE TABLE <table_name> PARTITION <partition_spec>[, PARTITION <partition_spec>...];

Filtre koşulu kullanarak bölümleri boşaltma

TRUNCATE TABLE <table_name> PARTITION <partition_filter_condition>;

Parametreler


Parametre


Gerekli


Açıklama


table_name


Evet


Boşaltılacak tablonun adı. Bölümlenmiş tablolar için bu, bölümlenmiş tablonun adıdır.


partition_spec


Evet (filtresiz bölümlenmiş tablolar için)


Bölüm belirtimi. Biçim: (partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...). Birden fazla bölümü belirtmek için bölüm belirtimlerini virgülle ayırın.


partition_filter_condition


Evet (filtre kullanıldığında)


Bölüm filtre koşulu (büyük/küçük harfe duyarlı değil). Ayrıntılar için aşağıdaki Bölüm filtre koşulu ayrıntıları bölümüne bakın.

Bölüm belirtimi bileşenleri:

  • partition_col: Bölüm sütunu adı (büyük/küçük harfe duyarlı değil).

  • partition_col_value: Bölüm değeri (büyük/küçük harfe duyarlı).

Bölüm filtre koşulu ayrıntıları

partition_filter_condition parametresi aşağıdaki biçimleri destekler:

  • partition (<partition_col> <comparison_operator> <partition_col_value>) -- Bir bölüm sütununu doğrudan karşılaştırır.

  • partition (scalar(<partition_col>) <comparison_operator> <partition_col_value>) -- Karşılaştırmadan önce bir skaler işlev uygular.

  • partition (<partition_filter_condition1> AND|OR <partition_filter_condition2>) -- Koşulları mantıksal işleçlerle birleştirir.

  • partition (NOT <partition_filter_condition>) -- Bir koşulu olumsuzlar.

  • partition (<partition_filter_condition1>)[, partition (<partition_filter_condition2>), ...] -- Birden fazla filtre yan tümcesini virgülle ayırır.

Filtre koşulu bileşenleri:

  • partition_col: Bölüm sütunu adı.

  • comparison_operator: Karşılaştırma işleci (örneğin =, !=, >, <, LIKE vb.).

  • partition_col_value: Bölüm sütunu veri türüyle eşleşen karşılaştırma değeri veya düzenli ifade.

  • scalar(): Karşılaştırmadan önce bölüm sütunu değerini işleyen skaler işlev.

Mantıksal işleçler:

  • NOT: Bölüm filtre koşulunun tümleyenini döndürür.

  • AND veya OR: Birden fazla bölüm filtre koşulunu birleştirir.

  • Virgülle ayrılan birden fazla bölüm filtre yan tümcesi, OR mantığıyla birleştirilir.

Kullanım notları

  • TRUNCATE TABLE verileri kaldırır ancak tablo şemasını ve sütun yapısını korur. Tabloyu tamamen kaldırmak için DROP TABLE ifadesini kullanın. Belirli satırları bir koşula göre kaldırmak için DELETE ifadesini kullanın.

  • TRUNCATE TABLE ifadesi, satırları tek tek taramadığı için DELETE ifadesinden WHERE yan tümcesi olmadan daha hızlıdır. Büyük tablolar veya bölümler için tüm verileri kaldırmanız gerektiğinde TRUNCATE TABLE ifadesini kullanın.

  • MaxCompute, her bölümü tek tek belirtmeden bölümlenmiş verilerin toplu temizlenmesini sağlayan filtre koşullarıyla bölüm düzeyinde boşaltmayı destekler.

  • TRUNCATE TABLE bir DDL işlemidir. İfade başarıyla yürütüldükten sonra veri kaldırma işlemi geri alınamaz.

Sınırlamalar

  • TRUNCATE TABLE yalnızca tablolar için geçerlidir. Görünümler veya materyalleştirilmiş görünümlerde kullanılamaz.

  • Bölümlenmiş tablolar için PARTITION yan tümcesi gereklidir. Bölümleri belirtmeden bölümlenmiş bir tabloda TRUNCATE TABLE çalıştırmak hata döndürür.

  • Belirtilen bölümün mevcut olması gerekir. Bir bölüm mevcut değilse ifade hata döndürür.

Örnekler

Bölümlenmemiş bir tabloyu boşaltma

-- Remove all data from the sales table
TRUNCATE TABLE sales;

Bölümlenmemiş bir tabloyu boşaltma (uçtan uca)

Aşağıdaki örnek tam yaşam döngüsünü gösterir: tablo oluşturma, veri ekleme, tabloyu boşaltma ve sonucu doğrulama.

-- Create a simple table.
CREATE TABLE IF NOT EXISTS truncate_demo (id BIGINT, name STRING);

-- Insert sample data.
INSERT INTO TABLE truncate_demo VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Carol');

-- Verify that the data exists.
SELECT * FROM truncate_demo;

Beklenen çıktı:

+----+-------+
| id | name  |
+----+-------+
| 1  | Alice |
| 2  | Bob   |
| 3  | Carol |
+----+-------+
-- Truncate the table to remove all data.
TRUNCATE TABLE truncate_demo;

-- Verify that the table is now empty.
SELECT * FROM truncate_demo;

Beklenen çıktı:

+----+------+
| id | name |
+----+------+
+----+------+

Tek bir bölümü boşaltma

-- Remove sales records for December 2013 in Hangzhou region
TRUNCATE TABLE sale_detail PARTITION (sale_date='201312', region='hangzhou');

Birden fazla bölümü boşaltma

-- Remove sales records for December 2013 in both Hangzhou and Shanghai regions
TRUNCATE TABLE sale_detail
  PARTITION (sale_date='201312', region='hangzhou'),
  PARTITION (sale_date='201312', region='shanghai');

Filtre koşulu kullanarak bölümleri boşaltma

-- Remove all partitions in Hangzhou region where sale_date starts with '2013'
TRUNCATE TABLE sale_detail PARTITION (sale_date LIKE '2013%' AND region='hangzhou');

Skaler işlev kullanarak bölümleri boşaltma

-- Remove partitions using a scalar function to process the partition column
TRUNCATE TABLE sale_detail PARTITION (scalar(sale_date) > '201300');

NOT işlecini kullanarak bölümleri boşaltma

-- Remove all partitions except those in Hangzhou region
TRUNCATE TABLE sale_detail PARTITION (NOT region='hangzhou');

OR mantığını kullanarak bölümleri boşaltma

-- Remove partitions matching multiple conditions (OR logic)
TRUNCATE TABLE sale_detail
  PARTITION (region='hangzhou'),
  PARTITION (region='shanghai');

İlgili komutlar

  • CREATE TABLE: Bölümlenmemiş tablolar, bölümlenmiş tablolar, harici tablolar veya kümeleme tabloları oluşturun

  • ALTER TABLE: Tablo işlemlerini değiştirin

  • DROP TABLE: Bölümlenmiş veya bölümlenmemiş tabloları silin

  • DESC TABLE/VIEW: MaxCompute iç tablolar, görünümler, materyalleştirilmiş görünümler, harici tablolar, kümeleme tabloları veya işlem tabanlı tablolar hakkında bilgi görüntüleyin

  • SHOW: SQL Veri Tanımlama Dili (DDL) deyimlerini görüntüleyin, bir projedeki tüm tabloları ve görünümleri listeleyin veya bir tablodaki tüm bölümleri listeleyin