2013-04-04 30 views
34

Birden çok sütun bırakmaya çalışıyorum ama sorun yaşıyorum. ALTER TABLE ve ADD() köşeli parantez içinde birden çok değerle yaptığımda aşağıdaki sözdizimi çalışır, ancak DROP COLUMN ile çalışmaz. Yanlış sözdizimini mi kullanıyorum? Birden sütunlar gerçek sözdizimi bırakınMySQL Çoklu Sütunları Düşür

$table3 = " 
     ALTER TABLE $table3_name 
     DROP COLUMN (
      user_firstname, 
      user_lastname, 
      user_address, 
      user_address2, 
      user_city, 
      user_state, 
      user_zip, 
      user_phone 
     ); 
    "; 
+0

Dokümantasyonda böyle bir sözdizimi yoktur, ALTER TABLE t2 DÜŞMESİ KOLONU c, DROP COLUMN d; – MatRt

+0

gibi bir şey kullanmanız gerekir. Yanıtın bu soruda olduğu görülüyor (http: // stackoverflow. com/Q/3.894.789). – HamZa

+0

Olası çoğaltılabilir [Tek bir ALTER TABLE deyimiyle birden çok sütunu nasıl DROP yapabilirim?] (Http://stackoverflow.com/questions/6346120/how-do-i-drop-multiple-columns-with-a-single- alter-table-statement) – Veve

cevap

67
ALTER TABLE `tablename` 
DROP `column1`, 
DROP `column2`, 
DROP `column3`; 
+0

Bundan sonra denedim ve çalıştı. Sadece diğer sözdiziminin diğer sorgular için çalışırken nasıl çalışmadığını tuhaf buldum. Teşekkürler. –

+0

@CoryNickerson Damlama, örneğin –

+2

seçme ve değiştirme gibi diğer işlevlerden farklıdır Sorun yok, yedeklemeyi unutmayın, ancak :) – void

2

belirttiğiniz MySQL 5.0.45 "sütununu bırak" gereken her sütun için Yani

alter table tablename drop column col1, drop column col2 , drop column col3 .... 

olduğunu. Bu, yukarıdaki cevabınkiyle aynıdır. Sadece bir nokta ekleyerek burada. Tabloyu değiştirmek diskteki boş alanı boşaltmayacak. Optimize tablosu çalıştırdıktan sonra tabloyu optimize et.

+1

"Sütun" kelimesi isteğe bağlıdır. –