Post  |  Commenti

Post Meta

6th
DIC

Spostare campi Mysql

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted by raphe | Filed under Appunti, Programming

closeQuesto articolo è stato pubblicato 2 anni 8 mesi 28 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

Se per qualche motivo avete un database mysql e in qualche tabella avete bisogno di spostare dei campi…questo è il post che fa per voi!
Oggi avevo necessità di spostare un campo (per spostare intendo proprio a livello di posizione, compreso il contenuto)e, mi son messo a cercare sul web prima di procedere a mano. Se per qualche motivo vi siete trovati nella stessa situazione e avete anche voi cercato, o chiesto su forum, ng, ecc. sicuramente vi avranno risposto cose del tipo: “perché devi farlo?”, “che conta la posizione?”, “stai sbagliando!”, ecc. Mi da molto fastidio quando i frequentatori di questi posti si comportano così.

Comunque, non perdiamo altro tempo ;) la soluzione è questa:

ALTER TABLE NOME_TABELLA MODIFY NOME_CAMPO DEFINIZIONE_CAMPO AFTER CAMPO_RIFERIMENTO

Vi spiego cosa significa…

sostituite i seguenti valori:

  • NOME_TABELLA: il nome della tabella da modificare;
  • NOME_CAMPO: il nome del campo che volete spostare;
  • DEFINIZIONE_CAMPO: il tipo del campo che state spostando;
  • CAMPO_RIFERIMENTO: il campo dopo il quale volete inserire il vostro.

Vi faccio un esempio: se avete una tabella test con i campi uno, due, tre (di tipo varchar(50)) e volete mettere tre prima di due, dovete eseguire il comando in questo modo:

ALTER TABLE test MODIFY tre varchar(50) AFTER uno

Tags: > > >

Reader's Comments

  1. Musikele |

    Perchè dovremmo fare una cosa del genere? mi viene in mente solo il caso in cui vado a fare una tabella e si trova prima il prefisso, poi l’indirizzo (!) e poi il telefono. Ma quest’esempio è scemotto.

    Per cosa l’hai usato?

    P.s. e lo sai che non l’ho fatto solo per semplice curiosità… ma anche per infastidirti! che cazzimma

  2. raphè |

    diciamo che l’esempio sta qui disponibile per qualsiasi uso, indipendentemente da ciò che ne ho fatto io.
    cmq se sei curioso, a me serviva perché avevo una tabella con dei campi e un’interfaccia web per modificarli, il cliente chiedeva di avere il campo data come secondo campo perché così la vedeva subito.
    ho risolto spostandolo!
    sia chiaro, il db era già popolato, altrimenti bastava cancellare la tabella e rifarla o cose spartane del genere ;)

  3. Gae |

    A me per esempio serve perchè ho sbagliato l’ordine nel creare la tabella ed adesso per importare un file di testo devo per forza spostare i campi nell’ordine che ho nel txt.

    Gae

  4. raphè |

    ah ecco!
    alla faccia di chi dice che è un’operazione inutile
    fa sempre piacere poter essere d’aiuto a qualcuno ;)

  5. eibike |

    ottimo suggerimento. Tra l’altro non l’ho trovato citato sul testo “Mysql 5″ di Michael Kofler, mentre anche nel mio caso ha risolto un problema di allineamento.

    eibike

  6. evilripper |

    lo script non mi funzionava perche’ mancava column!!! :-D

    ALTER TABLE test MODIFY COLUMN tre varchar(50) AFTER uno;

    Ciao

  7. raphè |

    a me, e a quanto pare anche ad altri, funziona anche senza column.

  8. luca |

    GRAZIE!! risolto al volo problema import

  9. davide |

    Attenzione! Ho fatto una prova ma oltre a spostare il campo mi ha ripristinato con valori diversi il Collation, l’opzione Null e il valore predefinito.
    Molto utile il comando ma bisogna stare attenti.

  10. Karmine |

    A me serviva GRAZIE
    Altri commenti mi sembrano inutili!
    Grazie

Leave a Reply

Immagine CAPTCHA
Il contenuto di questo Blog è rilasciato sotto Licenza Creative Commons (Leggi)