A veces, es posible que deba eliminar una columna de la tabla de la base de datos en MySQL. Puede hacer esto fácilmente usando el comando MySQL DROP COLUMN. Aquí se explica cómo eliminar una columna de una tabla en MySQL.
Cómo eliminar una columna de una tabla en MySQL
Estos son los pasos para eliminar la columna de la tabla en MySQL. Usaremos la consulta DROP COLUMN de MySQL para eliminar las columnas existentes de la tabla.
Esta es la sintaxis de la sentencia DROP COLUMN:
ALTER TABLE table_name DROP COLUMN column_name;
En la declaración anterior, debe mencionar la tabla cuya columna desea eliminar, en la cláusula ALTER TABLE. Luego especifique el nombre de la columna en la cláusula DROP COLUMN.
Solo puede usar DROP, en lugar de DROP COLUMN arriba.
Si desea eliminar varias columnas de la tabla, menciónelas en cláusulas separadas DROP COLUMN, en la misma declaración.
ALTER TABLE table_name DROP COLUMN column1, DROP COLUMN column2, DROP COLUMN column3;
Cuando elimina una columna de la tabla, todos los procedimientos almacenados, vistas y disparadores que hacen referencia a esta columna dejan de ser válidos. Deberá actualizarlos manualmente para que vuelvan a funcionar. También puede eliminar la columna con el índice, pero el índice dejará de ser válido después de eliminar la columna.
Lectura adicional:MySQL DROP TABLE
Ejemplos de DROP COLUMN de MySQL
Supongamos que tiene la siguiente tabla pedidos
mysql> create table orders(order_date date, sale int, product_id int, category varchar(255));
Digamos que desea DROP COLUMN product_id
mysql> alter table orders drop column product_id; mysql> describe orders; +------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+-------+ | order_date | date | YES | | NULL | | | sale | int(11) | YES | | NULL | | | category | varchar(255) | YES | | NULL | | +------------+--------------+------+-----+---------+-------+
Lectura adicional:Cómo obtener registros de hoy en MySQL
MySQL DROP múltiples columnas
Digamos que desea eliminar varias columnas de venta y categoría. Aquí está la declaración MySQL DROP COLUMN para eliminar varias columnas de la tabla en MySQL
mysql> alter table orders drop column sale, drop column category; mysql> describe orders; +------------+------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+------+------+-----+---------+-------+ | order_date | date | YES | | NULL | | +------------+------+------+-----+---------+-------+
Lectura adicional:cómo obtener registros de los últimos 7 días en MySQL
MySQL DROP COLUMN con clave foránea
Si intenta DROP COLUMN directamente con Foreign Key, MySQL generará un error. Digamos que tienes las siguientes tablas
mysql> create table orders3(id int auto_increment primary key,category_id int); mysql> create table categories(id int auto_increment primary key,name varchar(255)); mysql> ALTER TABLE orders3 ADD CONSTRAINT fk_cat FOREIGN KEY (category_id) REFERENCES categories(id);
Lectura adicional:Cómo obtener registros entre 2 fechas en MySQL
En el ejemplo anterior, la clave externa category_id en orders3 hace referencia a la columna de ID de clave principal de la tabla de categorías. Si intenta eliminarlo, obtendrá un error.
mysql> alter table orders3 drop column category_id; ERROR 1553 (HY000): Cannot drop index 'fk_cat': needed in a foreign key constraint
Entonces, primero debe eliminar la restricción de clave externa y solo luego usar MySQL DROP COLUMN
mysql> alter table orders3 drop foreign key fk_cat; mysql> alter table orders3 drop column category_id; mysql> describe orders3; +-------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | +-------+---------+------+-----+---------+----------------+
Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!