web-dev-qa-db-fra.com

MySQL réorganise l'ordre des colonnes avec phpmyadmin

Avez-vous de l'aide pour réorganiser les colonnes dans MySQL en utilisant phpMyAdmin? Est-ce que cela s'appelle la cardinalité? J'ai créé des tables, mais j'ai besoin de réorganiser l'ordre des colonnes en raison d'un script d'exportation que j'ai. Il exporte en fonction des accords. Par exemple. Je veux des colonnes:

Apple | Cherry | Banana

changé en:

Apple | Banana | Cherry
42
karto

Utilisez la commande ALTER TABLE avec MODIFY COLUMN. Quelque chose comme:

ALTER TABLE foo MODIFY COLUMN Hobby VARCHAR(20) FIRST;

Je ne sais pas s'il existe ou non une méthode graphique pour le faire dans phpmyadmin, mais les requêtes SQL normales devraient également fonctionner.

42
King Skippus

phpMyAdmin a enfin inclus cette fonctionnalité dans la version la plus récente (4.0 et plus).

Accédez à la vue "Structure" d'un tableau, cliquez sur le bouton Modifier dans le champ approprié, puis sous "Déplacer la colonne", sélectionnez où vous souhaitez que le champ aille.

48
DisgruntledGoat

La réponse en constante évolution!

Plus de bouton "Changer" mais maintenant un bouton "Déplacer les colonnes".

Fonctionne bien. (IE cliquez sur l'onglet "Structure" et cliquez sur "Déplacer les colonnes" et le tour est joué!)

enter image description here

22
BeNice

Pour réorganiser les colonnes, ouvrez une fenêtre de requête et utilisez l'instruction:

ALTER TABLE ... MODIFY COLUMN ... FIRST|AFTER ...

Malheureusement, vous devrez retaper la définition de colonne entière. Voir http://dev.mysql.com/doc/refman/5.1/en/alter-table.html Exemple:

ALTER TABLE t MODIFY COLUMN cherry VARCHAR(255) NULL AFTER banana;

Peut varier selon votre version de MySQL, mais cette syntaxe semble fonctionner depuis la version 3.23.

22
Halcyon

Malheureusement, vous devrez (1) ouvrir une fenêtre de requête et (2) spécifier à nouveau les attributs de chaque colonne que vous réorganisez. Par exemple:

ALTER TABLE test.`new table`
  MODIFY COLUMN cherry unsigned int(10) NOT NULL AUTOINCREMENT PRIMARY KEY 
  AFTER banana

Disposition du tableau avant modification:

`Apple`  varchar(45) NOT NULL,
`cherry` int(10) unsigned NOT NULL AUTO_INCREMENT,
`banana` varchar(45) NOT NULL

Disposition du tableau après modification:

`Apple`  varchar(45) NOT NULL,
`banana` varchar(45) NOT NULL,
`cherry` int(10) unsigned NOT NULL AUTO_INCREMENT
6
Johan