MySQL: Удаление нескольких столбцов
Я пытаюсь удалить несколько столбцов из таблицы, но у меня возникают трудности. Синтаксис ниже работает, когда я использую ALTER TABLE
и ADD
с несколькими значениями в круглых скобках ()
, но не работает с DROP COLUMN
. Неужели я использую неправильный синтаксис?
$table3 = "
ALTER TABLE $table3_name
DROP COLUMN (
user_firstname,
user_lastname,
user_address,
user_address2,
user_city,
user_state,
user_zip,
user_phone
);
";
2 ответ(ов)
Для удаления нескольких столбцов из таблицы в MySQL вы можете использовать следующий синтаксис команды ALTER TABLE
. Однако, обратите внимание, что вы не можете использовать DROP
для каждого столбца отдельно. Вместо этого нужно указать все столбцы, которые вы хотите удалить, через запятую в одном DROP
, как показано в примере ниже:
ALTER TABLE `tablename`
DROP `column1`,
DROP `column2`,
DROP `column3`;
Правильный синтаксис будет выглядеть следующим образом:
ALTER TABLE `tablename`
DROP `column1`,
`column2`,
`column3`;
Таким образом, вы сможете удалить указанные столбцы из таблицы tablename
. Не забудьте делать резервные копии данных перед выполнением таких операций, так как удалённые данные не подлежат восстановлению!
Чтобы удалить несколько столбцов, актуальный синтаксис выглядит так:
ALTER TABLE имя_таблицы DROP COLUMN колонка1, DROP COLUMN колонка2, DROP COLUMN колонка3, ...;
Таким образом, для каждого столбца необходимо указать "DROP COLUMN" в MySQL версии 5.0.45. Это аналогично приведённому выше ответу. Также стоит отметить, что команда ALTER TABLE не освобождает фактическое пространство на диске. Поэтому после выполнения команды ALTER TABLE следует запустить команду OPTIMIZE TABLE.
Какой лучший порядок сортировки использовать для MySQL с PHP? [закрыто]
SQL-инъекция, обхватывающая mysql_real_escape_string()
MySQL INTO OUTFILE: Как переопределить существующий файл?
Ошибка при отправке пакета QUERY
Какой быстрее в PHP - MySQL или MySQLi?