Mysql
 sql >> Base de données >  >> RDS >> Mysql

COLONNE SUPPRIMÉE MySQL

Parfois, vous devrez peut-être supprimer une colonne de la table de base de données dans MySQL. Vous pouvez facilement le faire en utilisant la commande MySQL DROP COLUMN. Voici comment supprimer une colonne d'une table dans MySQL.

Comment supprimer une colonne d'une table dans MySQL

Voici les étapes pour supprimer la colonne de la table dans MySQL. Nous utiliserons la requête MySQL DROP COLUMN pour supprimer les colonnes existantes de la table.

Voici la syntaxe de l'instruction DROP COLUMN :

ALTER TABLE table_name
DROP COLUMN column_name;

Dans l'instruction ci-dessus, vous devez mentionner la table dont vous souhaitez supprimer la colonne, dans la clause ALTER TABLE. Spécifiez ensuite le nom de la colonne dans la clause DROP COLUMN.

Vous ne pouvez utiliser que DROP, au lieu d'utiliser DROP COLUMN ci-dessus.

Si vous souhaitez supprimer plusieurs colonnes de la table, mentionnez-les dans des clauses DROP COLUMN distinctes, dans la même instruction.

ALTER TABLE table_name
DROP COLUMN column1,
DROP COLUMN column2,
DROP COLUMN column3;

Lorsque vous supprimez une colonne de la table, toutes les procédures stockées, vues et déclencheurs qui font référence à cette colonne deviennent invalides. Vous devrez les mettre à jour manuellement pour qu'ils fonctionnent à nouveau. Vous pouvez également supprimer une colonne avec Index, mais l'index deviendra invalide après la suppression de la colonne.

Lecture bonus :MySQL DROP TABLE

Exemples MySQL DROP COLUMN

Supposons que vous ayez les commandes de table suivantes

mysql> create table orders(order_date date, 
       sale int, 
       product_id int, 
       category varchar(255));

Disons que vous voulez 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    |       |
+------------+--------------+------+-----+---------+-------+

Lecture bonus :Comment obtenir des enregistrements d'aujourd'hui dans MySQL

MySQL DROP plusieurs colonnes

Supposons que vous souhaitiez supprimer plusieurs colonnes de vente et de catégorie. Voici l'instruction MySQL DROP COLUMN pour supprimer plusieurs colonnes de la table dans 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    |       |
+------------+------+------+-----+---------+-------+

Lecture bonus :Comment obtenir les enregistrements des 7 derniers jours dans MySQL

MySQL DROP COLUMN avec clé étrangère

Si vous essayez de DROP COLUMN directement avec une clé étrangère, MySQL générera une erreur. Disons que vous avez les tables suivantes

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);

Lecture bonus :comment obtenir des enregistrements entre 2 dates dans MySQL

Dans l'exemple ci-dessus, la clé étrangère category_id dans les commandes3 fait référence à la colonne d'ID de clé primaire de la table des catégories. Si vous essayez de le supprimer, vous obtiendrez une erreur.

mysql> alter table orders3 drop column category_id;
ERROR 1553 (HY000): Cannot drop index 'fk_cat': needed in a foreign key constraint

Donc, vous devez d'abord supprimer la contrainte de clé étrangère et ensuite seulement utiliser 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 facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !