A volte potrebbe essere necessario eliminare la colonna dalla tabella del database in MySQL. Puoi farlo facilmente usando il comando MySQL DROP COLUMN. Ecco come eliminare una colonna dalla tabella in MySQL.
Come eliminare una colonna dalla tabella in MySQL
Ecco i passaggi per eliminare la colonna dalla tabella in MySQL. Useremo la query MySQL DROP COLUMN per rimuovere le colonne esistenti dalla tabella.
Ecco la sintassi dell'istruzione DROP COLUMN:
ALTER TABLE table_name DROP COLUMN column_name;
Nella dichiarazione precedente, è necessario menzionare la tabella di cui si desidera eliminare la colonna, nella clausola ALTER TABLE. Quindi specifica il nome della colonna nella clausola DROP COLUMN.
Puoi usare solo DROP, invece di usare DROP COLUMN sopra.
Se vuoi eliminare più colonne dalla tabella, menzionale in clausole DROP COLUMN separate, nella stessa istruzione.
ALTER TABLE table_name DROP COLUMN column1, DROP COLUMN column2, DROP COLUMN column3;
Quando si rimuove una colonna dalla tabella, tutte le stored procedure, le viste e i trigger che fanno riferimento a questa colonna diventano non validi. Dovrai aggiornarli manualmente per farli funzionare di nuovo. Puoi anche eliminare la colonna con Indice, ma l'indice non sarà più valido dopo la rimozione della colonna.
Bonus Leggi:MySQL DROP TABLE
Esempi MySQL DROP COLUMN
Supponiamo che tu abbia la seguente tabella ordini
mysql> create table orders(order_date date, sale int, product_id int, category varchar(255));
Supponiamo che tu voglia DROP COLUMN id_prodotto
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 | | +------------+--------------+------+-----+---------+-------+
Bonus Lettura:come ottenere record da oggi in MySQL
MySQL DROP colonne multiple
Diciamo che vuoi eliminare più colonne vendita e categoria. Ecco l'istruzione MySQL DROP COLUMN per eliminare più colonne dalla tabella in 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 | | +------------+------+------+-----+---------+-------+
Bonus Leggi:Come ottenere i record degli ultimi 7 giorni in MySQL
COLONNA DROP MySQL con chiave esterna
Se provi a DROP COLUMN direttamente con la chiave esterna, MySQL genererà un errore. Supponiamo che tu abbia le seguenti tabelle
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);
Bonus Leggi:Come ottenere record tra 2 date in MySQL
Nell'esempio precedente, la chiave esterna category_id in orders3 fa riferimento alla colonna dell'ID della chiave primaria dalla tabella delle categorie. Se provi a eliminarlo, riceverai un errore.
mysql> alter table orders3 drop column category_id; ERROR 1553 (HY000): Cannot drop index 'fk_cat': needed in a foreign key constraint
Quindi prima devi eliminare il vincolo di chiave esterna e solo dopo utilizzare 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 semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!