Belirtilen koşullara göre bir tablodan satır siler.
Sınırlamalar
Hedef tablonun birincil anahtarı olmalıdır.
DELETEdeyimlerinde tablo takma adları desteklenmez.Birden fazla birleştirilmiş tablo arasında sorgulama yapılıyor olsa bile her
DELETEdeyimi yalnızca tek bir tablodan veri silebilir.Bir tablodaki veya bölümdeki tüm satırları silmek için bunun yerine
TRUNCATE TABLEveyaTRUNCATE TABLE PARTITIONkullanın. Daha fazla bilgi için bkz. TRUNCATE TABLE.
Söz dizimi
Tek bir tablodan silme
DELETE FROM table_name
[ WHERE condition ]
Birden fazla tablodan silme
Çok tablolu DELETE işlemi AnalyticDB for MySQL V3.2.0.0 veya sonraki sürümleri gerektirir. Kümenizin küçük sürümünü görüntülemek veya güncellemek için AnalyticDB for MySQL konsoluna gidin, Cluster Information sayfasını açın ve Configuration Information bölümünü kontrol edin. Talimatlar için bkz. Update the minor version of a cluster.
Tablolar arasındaki satırları filtrelemek için JOIN kullanın ve ardından hedef tablodan eşleşen satırları silin:
DELETE table_name1
FROM table_name1 [INNER JOIN | LEFT JOIN | RIGHT JOIN] table_name2 ON table_name1.column1 = table_name2.column1
[WHERE where_condition]
Örnekler
Bir sütun değerine uyan satırları silme
customer_name değeri Alex olan tüm satırları silin:
DELETE FROM customer WHERE customer_name='Alex';
Bir koşula uyan satırları silme
age değeri 18'den küçük olan tüm satırları silin:
DELETE FROM customer WHERE age<18;
JOIN kullanarak satırları silme
Müşterinin eşleşen bir siparişi olduğu ve age değerinin 18'e eşit olduğu durumlarda customer tablosundan satırları silin:
DELETE customer FROM customer JOIN orders ON customer.id = orders.id WHERE customer.age = 18;
DELETE işleminin çalışma şekli
AnalyticDB for MySQL'deki DELETE işlemleri eşzamansızdır. Bir DELETE deyimi çalıştırıldıktan sonra veriler silinmek üzere işaretlenir ancak depolama alanından hemen kaldırılmaz. Depolama alanı yalnızca bir BUILD job işaretlenen satırları işledikten sonra geri kazanılır.
Bir DELETE işleminden sonra depolama kullanımı hemen düşmez. Alanı geri kazanmak için bir BUILD job tetikleyin:
Otomatik olarak: Küme belirli koşulları karşıladığında bir BUILD job otomatik olarak çalışır. Bkz. Automatic BUILD.
Manuel olarak: Bir BUILD job'ı istediğiniz zaman tetikleyebilirsiniz. Bkz. Manual BUILD.