2013-04-04 7 views
34

Я пытаюсь удалить несколько столбцов, но с некоторыми проблемами. Синтаксис ниже работает, когда я делаю ALTER TABLE и ADD с несколькими значениями в скобках (), но он не работает с DROP COLUMN. Я использую неправильный синтаксис?MySQL Drop Несколько столбцов

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

В документации нет такого синтаксиса, вы должны использовать что-то вроде 'ALTER TABLE t2 DROP COLUMN c, DROP COLUMN d;' – MatRt

+0

Кажется, ответ был в этом [вопросе] (http: // stackoverflow. ком/кв/3894789). – HamZa

+0

Возможный дубликат [Как сделать DROP несколько столбцов с помощью одного оператора ALTER TABLE?] (Http://stackoverflow.com/questions/6346120/how-do-drop-multiple-columns-with-a-single- alter-table-statement) – Veve

ответ

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

Это то, что я пробовал дальше, и это сработало. Просто подумал, что странно, как другой синтаксис не работал, когда он работает для других запросов. Благодарю. –

+0

@CoryNickerson Dropping отличается от других функций, таких как select & replace, например, –

+2

Нет проблем, не забудьте иметь резервные копии, хотя :) – void

2

Чтобы удалить несколько столбцов фактический синтаксис является

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

Таким образом, для каждого столбца нужно указать "уронить столбец" в Mysql 5.0.45. Это то же самое, что и ответ выше. Просто добавьте один пункт здесь. Измените таблицу, чтобы освободить фактическое пространство на диске. Поэтому запустите оптимизацию таблицы после выполнения оптимизации таблицы.

+1

Слово «столбец» является необязательным. –

Смежные вопросы