Primero, cosidere si realmente necesita cambiar el orden de columnas en una tabla. El
objetivo primordial de SQL es abstraer la aplicación del formato de almacenamiento de datos.
Debería siempre especificar el orden en el que quiere recoger sus datos. La primera de las siguiente sentencias retorna las columnas en el orden
First, consider whether you really need to change the column
order in a table. The whole point of SQL is to abstract the
application from the data storage format. You should always
specify the order in which you wish to retrieve your data. The
first of the following statements returns columns in the order
col_name1,
col_name2,
col_name3, mientras que la segunda las retorna en orden
col_name1,
col_name3,
col_name2:
mysql> SELECTcol_name1,col_name2,col_name3FROMnombre_de_tabla; mysql> SELECTcol_name1,col_name3,col_name2FROMnombre_de_tabla;
Si usted decide cambiar el orden de las columnas de la tabla aún así, debe hacerlo de la siguiente manera:
Cree una tabla con las columnas en el nuevo orden.
Ejecute esta sentencia:
mysql> INSERT INTO new_table
-> SELECT columns-in-new-order FROM old_table;
Elimine o renombre old_table.
Renombre la nueva tabla al nombre original:
mysql> ALTER TABLE new_table RENAME old_table;
SELECT * es muy útil para consultas de prueba. No obstante, en una
aplicación, nunca debería utilizar SELECT
* y después recoger las columnas basándose en su posición. El orden y posición
en que las columnas son devueltas no es el mismo si usted añade, mueve, o elimina columnas.
Un cambio simple a la estructura de su tabla podría causar que su aplicación falle.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

