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_name3
FROMnombre_de_tabla
; mysql> SELECTcol_name1
,col_name3
,col_name2
FROMnombre_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.