2010-11-04 23 views
27

Estoy trabajando en una base de datos. En la mayoría de las tablas, el orden de las columnas no es el que yo esperaría, y me gustaría cambiarlo (tengo el permiso). Por ejemplo, las columnas de la clave primaria id rara vez son la primera columna.¿Forma fácil de reordenar columnas?

¿Hay algún método sencillo para mover columnas con phpMyAdmin?

Respuesta

54

Utilice una declaración ALTER TABLE ... MODIFY COLUMN.

ALTER TABLE table_name MODIFY COLUMN misplaced_column INT(11) AFTER other_column; 
+0

¿Necesito la información del tipo col? - INT (11) – Haroldo

+1

Sí, debe especificar el tipo de columna –

+0

funciona un encanto, gracias. – Haroldo

1

Otro enfoque consiste en:

#CREATE TABLE original (
# id INT 
# name TEXT 
# etc... 
#); 

CREATE TABLE temp (
    name TEXT 
    id INT 
    etc... 
); 

INSERT INTO temp SELECT name, id FROM original; 

DROP TABLE original; 

RENAME TABLE temp TO original; 
+0

¿Tiene alguna ventaja? parece una tarea rutinaria ... – Haroldo

+0

Solo si quiere hacer otras modificaciones, como tipos, nombres, orden, etc., todo en uno, vaya – Petah

+0

¿Por qué debería copiar todos sus datos de esta manera? Cuando no es necesario? Es ineficiente y solo estás buscando problemas. –

4
ALTER TABLE `table` 
CHANGE COLUMN `field` `field` 
INT(11) AFTER `field2`; 
6

Ésta es la consulta SQL
ALTER TABLE nombre_tabla MODIFICAR COLUMNA misplaced_column Columna definición DESPUÉS other_column; Aquí en La definición de columna es una definición de columna completa. Para ver la definición de columna, si está utilizando phpmyadmin, haga clic en la pestaña de estructura. Luego haga clic en cambiar enlace en la columna deseada. Luego, sin modificar nada, haga clic en guardar. Le mostrará el sql. Copie el sql y simplemente agregue * DESPUÉS de other_column * al final. Será todo.

Si te gusta llevar la misplaced_column * * a la primera posición después ALTER TABLE nombre_tabla MODIFICAR COLUMNA misplaced_column definición-columna en primer lugar;

+2

Esto es perfecto e incluso permite el movimiento de una columna 'datetime'. Gracias @ zahid9i –

5

Dado que menciona phpMyAdmin, ahora hay una manera de reordenar columnas en la versión más reciente (4.0 y superior).

Vaya a la vista "Estructura" de una tabla, haga clic en el botón Editar (o Cambiar) en el campo apropiado, luego en "Mover columna" seleccione dónde le gustaría que vaya el campo.

+0

No hay otra opción como esa. – Foreever

+0

@Foreever ¿qué versión estás usando? – DisgruntledGoat

+0

Información de la versión: 3.4.10.1deb1 – Foreever

0

SQL Maestro para MySQL ofrece herramientas para reordenar campos también con una GUI desafortunadamente no es una función de arrastrar y soltar.

  1. mesa abierta vista de la ficha
  2. Abra Propiedades
  3. campos haga clic en Reordenar desde la barra lateral
  4. Haga clic en el campo que desea movido y luego clic en el arriba o hacia abajo las flechas verdes
  5. Haga clic en OK para enviar actualización de la base de datos

Probablemente haya otros programas y utilidades para hacer esto también. Encontré este hilo de una búsqueda, así que pensé en compartir lo que encontré para otros.

2

En phpMyAdmin versión 3.5.5, vaya a la pestaña "Buscar" y arrastre las columnas a su ubicación preferida para reordenar (por ejemplo, si tiene columnas llamadas A, B, C, todo lo que necesita hacer es arrastrar columna C entre A y B para reordenarlo como A, C, B).

0

Método fácil para la versión más reciente:

  1. Abra la tabla que desea reordenar.
  2. Ir a la pestaña de estructura.
  3. Elija el enlace de la columna de movimiento.
  4. Reordene las columnas como desee.
Cuestiones relacionadas