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

Come eliminare una colonna da una tabella in MySQL utilizzando un numero di colonna

Per aggiungere a RMathis risposta, puoi fare tutto all'interno di SQL anche usando SET per definire la stringa DROP insieme a PREPARA ed ESEGUI

SQL Fiddle

Impostazione dello schema 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;

Query 1 :

desc table1

Risultati :

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