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

Comment supprimer une colonne d'une table dans MySQL en utilisant un numéro de colonne

Pour ajouter à la réponse RMathis, vous pouvez tout faire dans SQL en utilisant également SET pour définir la chaîne DROP en conjonction avec PRÉPARER et EXÉCUTER

SQL Fiddle

Configuration du schéma MySQL 5.6 :

CREATE TABLE Table1
    (`col1` varchar(1), 
     `col2` varchar(1), 
     `col3` varchar(1), 
     `col4` varchar(1), 
     `col5` varchar(1))
;

set @col = (select column_name 
            from information_schema.columns 
            where table_name='table1' and ordinal_position=3);

SET @s = CONCAT("alter table table1 drop column ", @col);

PREPARE stmt FROM @s;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;

Requête 1 :

desc table1

Résultats :

| COLUMN_NAME | COLUMN_TYPE | IS_NULLABLE | COLUMN_KEY | COLUMN_DEFAULT | EXTRA |
|-------------|-------------|-------------|------------|----------------|-------|
|        col1 |  varchar(1) |         YES |            |         (null) |       |
|        col2 |  varchar(1) |         YES |            |         (null) |       |
|        col4 |  varchar(1) |         YES |            |         (null) |       |
|        col5 |  varchar(1) |         YES |            |         (null) |       |