Détails
Ajout de plusieurs colonnes APRÈS une colonne spécifique dans MySQL
Je dois ajouter plusieurs colonnes à une table mais positionner les colonnes après une colonne appelée lastname
.
J'ai essayé ceci :
ALTER TABLE `users` ADD COLUMN
(
`count` smallint(6) NOT NULL,
`log` varchar(12) NOT NULL,
`status` int(10) unsigned NOT NULL
)
AFTER `lastname`;
J'obtiens cette erreur :
Vous avez une erreur dans votre syntaxe SQL ; vérifiez le manuel qui correspond à la version de votre serveur MySQL pour connaître la bonne syntaxe à utiliser près de ' ;) AFTER
lastname
' ; à la ligne 7
Comment puis-je utiliser AFTER dans une requête comme celle-ci ?
330
3
Essayez ceci
Vérifiez la [syntaxe][1]
[1] : http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Si vous souhaitez ajouter une seule colonne après un champ spécifique, la requête MySQL suivante devrait fonctionner :
Si vous voulez ajouter plusieurs colonnes, vous devez utiliser la commande 'ADD' ; à chaque fois pour une colonne. Voici la requête MySQL pour cela :
Point à noter
Dans la deuxième méthode, la dernière colonne
ADD COLUMN
devrait en fait être la première colonne que vous voulez ajouter à la table.Par exemple : si vous voulez ajouter
count
,log
,status
dans l'ordre exact aprèslastname
, alors la syntaxe serait en fait :Une possibilité serait de ne pas s'embêter à réordonner les colonnes dans la table et de la modifier simplement en ajoutant les colonnes. Ensuite, créez une vue qui présente les colonnes dans l'ordre que vous souhaitez - en supposant que l'ordre soit vraiment important. La vue peut être facilement modifiée pour refléter l'ordre que vous souhaitez. Comme je ne peux pas imaginer que l'ordre soit important pour les applications programmatiques, la vue devrait suffire pour les requêtes manuelles où il pourrait être important.