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 !