Actuellement, j'ai la table MySQL suivante: Employees (empID, empName, department);
Je souhaite modifier le tableau comme suit: Employees (empID, department, empName);
Comment cela peut-il être fait en utilisant des ALTER
instructions?
Remarque: je souhaite modifier uniquement les positions des colonnes.
SELECT *
instruction. (Certes, si l'ordre des valeurs est important, il faut les énumérer explicitement dans l'instruction, mais peut-être qu'OP n'a pas un contrôle total ici.)SELECT
instructionAFTER column
peut également être utilisé avecALTER TABLE ADD column
. (pour la prochaine fois, vous ajouterez des champs.)Réponses:
Si empName est une colonne VARCHAR (50):
ÉDITER
Selon les commentaires, vous pouvez également le faire:
Notez que la répétition de
empName
est délibérée. Vous devez dire à MySQL que vous souhaitez conserver le même nom de colonne.Vous devez savoir que les deux versions de syntaxe sont spécifiques à MySQL. Ils ne fonctionneront pas, par exemple, dans PostgreSQL ou dans de nombreux autres SGBD.
Autre modification: comme l'a souligné @Luis Rossi dans un commentaire, vous devez spécifier complètement la définition de colonne modifiée juste avant le
AFTER
modificateur. Les exemples ci-dessus ont justeVARCHAR(50)
, mais si vous avez besoin d'autres caractéristiques (commeNOT NULL
ou une valeur par défaut), vous devez également les inclure. Consultez la documentation surALTER TABLE
pour plus d'informations.la source
COLUMN
mot-clé est facultatif dans lesALTER TABLE
instructions. Je préfère l'utiliser car je pense que cela rend la déclaration plus lisible.NOT NULL DEFAULT 1
, cela se fait juste après le type de colonne dans l'exempleVARCHAR(50)
Modifier la position de la colonne:
Si vous devez le déplacer vers la première position, vous devez utiliser le terme PREMIER à la fin de la requête ALTER TABLE CHANGE [COLUMN]:
la source
phpMyAdmin fournit une interface graphique pour cela dans la vue de la structure d'une table. Cochez pour sélectionner la colonne que vous souhaitez déplacer et cliquez sur l'action de modification en bas de la liste des colonnes. Vous pouvez ensuite modifier toutes les propriétés de la colonne et vous trouverez la fonction «déplacer la colonne» à l'extrême droite de l'écran.
Bien sûr, tout cela ne fait que construire les requêtes dans la bonne réponse parfaite, mais les fans de l'interface graphique pourraient apprécier l'alternative.
ma version de phpMyAdmin est 4.1.7
la source
J'ai dû exécuter cela pour une colonne introduite dans les dernières étapes d'un produit, sur 10+ tables. Il a donc écrit ce script rapide et désordonné pour générer la commande alter pour toutes les tables «pertinentes».
la source