2010-11-04 3 views
27

Sto lavorando su un database. Sulla maggior parte delle tabelle, l'ordine delle colonne non è quello che mi aspetterei e vorrei modificarlo (ho il permesso). Ad esempio, le colonne id del primary_key sono raramente la prima colonna!Un modo semplice per riordinare le colonne?

Esiste un metodo semplice per spostare colonne con phpMyAdmin?

risposta

54

Utilizzare una dichiarazione ALTER TABLE ... MODIFY COLUMN.

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

mi servono le informazioni sul tipo? - INT (11) – Haroldo

+1

Sì, è necessario specificare il tipo di colonna –

+0

funziona come un incantesimo, grazie. – Haroldo

1

Un altro approccio è quello di:

#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

eventuali vantaggi a questo? sembra un lavoretto ... – Haroldo

+0

Solo se vuoi fare altre modifiche, come tipi, nomi, ordini ecc. tutto in una volta. – Petah

+0

Perché dovresti copiare tutti i tuoi dati in giro così? Quando non è necessario? È inefficiente e stai solo chiedendo dei guai. –

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

Ecco la query SQL
ALTER TABLE nome_tabella MODIFICARE COLONNA misplaced_column Colonna definizione DOPO other_column; Qui in Definizione colonna è la definizione di colonna completa. Per vedere la definizione della colonna se si utilizza phpmyadmin, fare clic sulla scheda struttura. Quindi fare clic su modifica collegamento sulla colonna desiderata. Quindi, senza modificare nulla, fare clic su Salva. Ti mostrerà lo sql. Copia lo sql e aggiungi * AFTER other_column * alla fine. Sarà tutto.

Se vi piace portare il * * misplaced_column alla prima posizione poi ALTER TABLE nome_tabella MODIFICARE COLONNA misplaced_column Colonna definizione FIRST;

+2

Questo è perfetto e consente anche il movimento di una colonna 'datetime'. Grazie @ zahid9i –

5

Dato che si parla di phpMyAdmin, esiste ora un modo per riordinare le colonne nella versione più recente (4.0 e successive).

Passare alla vista "Struttura" per una tabella, fare clic sul pulsante Modifica (o Cambia) nel campo appropriato, quindi in "Sposta colonna" selezionare dove si desidera che il campo vada.

+0

Non c'è nessuna opzione come quella. – Foreever

+0

@Foreever quale versione stai usando? – DisgruntledGoat

+0

Informazioni sulla versione: 3.4.10.1deb1 – Foreever

0

SQL Maestro per MySQL offre strumenti per riordinare i campi e con una GUI, sfortunatamente non è un trascinamento.

  1. vista Aprire la tabella di tabulazione
  2. Aprire Proprietà
  3. campi Clicca Riordina dalla barra laterale
  4. Fare clic sul campo che si desidera spostato e quindi fare clic su o giù le frecce verdi
  5. Fare clic su OK per inviare aggiornamento del database

Probabilmente ci sono anche altri programmi e utilità. Ho trovato questo thread da una ricerca quindi ho pensato di condividere ciò che ho trovato per gli altri.

2

In phpMyAdmin versione 3.5.5, vai alla scheda "Sfoglia" e trascina le colonne nella posizione desiderata per riordinarla (ad esempio se hai colonne denominate A, B, C, tutto ciò che devi fare è trascinare la colonna C tra A e B per riordinarlo come A, C, B).

0

metodo facile per la versione più recente:

  1. Aprire la tabella che si desidera riordinare.
  2. Vai alla scheda struttura.
  3. Ha scelto il collegamento della colonna di spostamento.
  4. Riordina le colonne come desideri.