440 votes

modifier la table ajoute plusieurs colonnes après Colonne1

J’ai besoin d’ajouter plusieurs colonnes à une table, mais positionner les colonnes après la colonne lastname

J’ai essayé ceci :

J’obtiens cette erreur :

Vous avez une erreur dans votre syntaxe SQL ; consulter le manuel correspondant à votre version du serveur MySQL pour la bonne syntaxe d’utiliser près de ') après `` ' à la ligne 7

Comment puis-je utiliser après dans une requête comme ça ? Merci.

856voto

Ayyappan Sekar Points 1835

Essayez ceci

vérifier la syntaxe

84voto

user3106476 Points 141

Si vous souhaitez ajouter une colonne unique après champ spécifique, alors la requête mysql est :

Si vous souhaitez ajouter plusieurs colonnes, puis vous devez utiliser commande « ADD » à chaque fois pour une colonne. Le mysql requête comme suit en tant que :

4voto

Damien_The_Unbeliever Points 102139

Si c'est MySQL, alors il n'est pas pris en charge. Voici la syntaxe:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
    [alter_specification [, alter_specification] ...]
    [partition_options]

alter_specification:
    table_options
  | ADD [COLUMN] col_name column_definition
        [FIRST | AFTER col_name ]
  | ADD [COLUMN] (col_name column_definition,...)
  | ADD {INDEX|KEY} [index_name]
        [index_type] (index_col_name,...) [index_option] ...

Et notez qu' AFTER est uniquement pris en charge pour la seule colonne de type variant. Ainsi, vous aurez à écrire que 3 ALTER des déclarations.1


1 Ou, mon général SQL recommandation serait de ne pas utiliser AFTER , mais je ne sais pas assez sur MySQL pour savoir si les positions des colonnes réellement faire une différence. En général, en SQL, vous vous référez à des colonnes par leur nom, et ainsi de leur "position" doit être hors de propos.

4voto

Gaurav Singh Points 16

ALTER TABLE users ADD COLUMN COLUMN NAME DATATYPE (TAILLE) APRES EXISTING COLUMN NAME ;

Vous pouvez le faire avec ça, ça marche bien pour moi.

1voto

Ahmed Points 189

Une possibilité serait de ne pas se soucier de réorganiser les colonnes de la table et de la modifier simplement en ajoutant les colonnes. Ensuite, créez une vue contenant les colonnes dans l'ordre souhaité, en supposant que la commande est vraiment importante. La vue peut être facilement modifiée pour refléter toute commande souhaitée. Comme je ne peux pas imaginer que l'ordre serait important pour les applications programmatiques, la vue devrait suffire aux requêtes manuelles où cela pourrait être important.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X