Neosify - Buy, Stake & Earn Crypto
Neosify - Buy, Stake & Earn Crypto
Neosify - Buy, Stake & Earn Crypto

Ordenar columnas de una tabla en phpMyAdmin (usando SQL)

By marjuanm | msproys | 26 Apr 2020


Logo phpMyAdmin

Logo de phpMyAdmin | Cortesía de Wikipedia

  La combinación PHP y MySQL ha sido muy exitosa pues cuando adquirimos un hospedaje en Internet suele venir con el administrador cPanel para administrar el sitio web completo y phpMyAdmin para administrar las bases de datos (aunque podría venir con otros sistemas de administración preinstalados).

  Esto no es algo nuevo, llevo unos 15 años creando sitios web en los que suele venir cPanel para administrar el sitio web completo y phpMyAdmin para las bases de datos como ya mencioné hace un momento. Me parece que phpMyAdmin es un sistema muy sencillo de usar pero una gran carencia es que no tiene un método para reordenar las columnas de una tabla de manera visual, no habiendo más remedio que recurrir a SQL para realizar esta tarea.

Debemos recurrir a la instrucción ALTER TABLE para cambiar el orden de las columnas tal como el siguiente ejemplo:

ALTER table `nombre_tabla`
MODIFY COLUMN `nombre_columna` tipo_datos
AFTER `otra_columna`

  Sin embargo, por alguna razón en mi servidor local (XAMPP) esto no da ningún resultado, no obtengo ningún mensaje de error pero tampoco sucede nada (de las cosas que más me exasperan), así que propongo a continuación otra solución.

Tengo una tabla a la que deseo cambiar el orden de las columnas, mi tabla tiene la siguiente estructura:

Estructura inicial

  Sin embargo yo deseo que su estructura sea ID, NAME, TRASH, LASTMODIF_LOCALDATE, LASTMODIF_USERNAME Y LASTMODIF_DATE, es decir las dos primeras columnas están invertidas. Como comenté anteriormente phpMyAdmin no tiene un sistema para arrastrar las columnas y fijar el nuevo orden, sin embargo no usaré ALTER TABLE. En lugar de ello en nuestro editor de SQL dentro de phpMyAdmin escribiremos la siguiente instrucción:

CREATE TABLE sch_expenses2 AS
SELECT NAME, ID, TRASH, LASTMODIF_LOCALDATE, LASTMODIF_USERNAME, LASTMODIF_DATE
FROM sch_expenses

  Donde sch_expenses2 es la nueva tabla que deseamos crear tomando como base los datos de la tabla sch_expenses, esto creará entonces una nueva tabla llamada "sch_expenses2", pero los datos vendrán de la tabla "sch_expenses". Sin embargo si notamos estamos usando la instrucción SELECT para traer todos los registros desde la tabla sch_expenses donde estaremos fijando el orden de las columnas. Ahora solo resta ejecutar la consulta y obtendremos una nueva tabla con la siguiente estructura:

Nueva estructura

  El único detalle es que no se copian los índices de nuestra nueva tabla, el tamaño de los campos es el mismo, pero no así con los índices teniendo que crearlos de nuevo. Ahora solo resta borrar la tabla original, reconstruir los índices que necesitemos y listo.

 

 

 

How do you rate this article?

1


marjuanm
marjuanm

I'm a VB.NET Programmer, but too programming on PHP, greetings.


msproys
msproys

Blog informático para dar a conocer mis proyectos, soy desarrollador de sistemas y partidario del software libre. Por medio de este blog estaré dando a conocer algunos de mis trabajos, así como publicando diversos códigos fuentes útiles.

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.