2013-04-04 25 views
34

Próbuję upuścić wiele kolumn, ale z pewnymi problemami. Poniższa składnia działa, gdy wykonuję ALTER TABLE i ADD z wieloma wartościami w nawiasach (), ale nie działa z DROP COLUMN. Czy używam niewłaściwej składni?Spadek wielu kolumn MySQL

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

Nie ma takiej składni w dokumentacji, musisz użyć czegoś takiego jak 'ALTER TABLE t2 DROP COLUMN c, DROP COLUMN d;' – MatRt

+0

Wygląda na to, że odpowiedź była w tym [pytanie] (http: // stackoverflow. com/q/3894789). – HamZa

+0

Możliwy duplikat [Jak DROP wiele kolumn za pomocą pojedynczej instrukcji ALTER TABLE?] (Http://stackoverflow.com/questions/6346120/how-do-i-drop-multiple-columns-with-a-single- alter-table-statement) – Veve

Odpowiedz

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

Oto, co próbowałem dalej i zadziałało. Pomyślałem, że to dziwne, że druga składnia nie działa, gdy działa na inne zapytania. Dzięki. –

+0

@CoryNickerson Upuszczanie różni się od innych funkcji, takich jak wybierz i zamień na przykład –

+2

Nie ma problemu, nie zapomnij jednak mieć kopii zapasowych, choć :) – void

2

Aby usunąć wiele kolumn rzeczywiste składni jest

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

Więc dla każdej kolumny trzeba określić "drop kolumny" w MySQL 5.0.45. Jest to to samo, co powyżej odpowiedzi. Wystarczy dodać jeden punkt tutaj. Tabela Alter nie zwalnia rzeczywistej przestrzeni na dysku. Więc uruchom tabelę optymalizacji po uruchomieniu optymalizacji tabeli.

+1

Słowo "kolumna" jest opcjonalne. –