Mysql
 sql >> Database >  >> RDS >> Mysql

COLONNA A GOCCIA MySQL

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!