J'ai créé une table avec 85 colonnes mais j'ai manqué une colonne. La colonne manquante doit être la 57ème ligne (la place de la colonne) . Je ne veux pas supprimer cette table et ne pas le créer à nouveau, je dois modifier cette table et je dois ajouter cette colonne dans la 57ème ligne
ALTER table table_name
Add column column_name57 integer
Comment appeler cette colonne dans la 57ème ligne
ALTER TABLE
ajoute par défaut de nouvelles colonnes à la fin du tableau. Utilisez la directive AFTER
pour le placer dans une certaine position dans la table:
ALTER table table_name
Add column column_name57 integer AFTER column_name56
À partir de mysql doc
Pour ajouter une colonne à une position spécifique dans une ligne du tableau, utilisez
FIRST
ouAFTER
col_name
. La valeur par défaut est d'ajouter la colonne en dernier. Vous pouvez également utiliserFIRST
etAFTER
dans les opérationsCHANGE
ouMODIFY
pour réorganiser les colonnes d'une table.
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
J'ai cherché Google pour cela pour PostgreSQL mais cela semble être impossible .
ALTER TABLE table_name ADD COLUMN column_name57 INTEGER AFTER column_name56
si vous dites ADD COLUMN nom_colonne, il générera une erreur
tu dois essayer
ALTER TABLE temp_name ADD My_Coumn INT(1) NOT NULL DEFAULT 1
rappelez-vous si la table a déjà peu d’enregistrements et que vous devez créer une nouvelle colonne, vous devez soit la rendre nulle, soit définir la valeur par défaut, comme je l’ai fait dans ma requête
SET
@column_name =(
SELECT COLUMN_NAME
FROM
information_schema.columns
WHERE
table_schema = 'database_name' AND TABLE_NAME = 'table_name' AND ordinal_position = 56
);
SET
@query = CONCAT(
'ALTER TABLE `table_name` ADD `new_column_name` int(5) AFTER ',
@column_name
);
PREPARE
stmt
FROM
@query;
EXECUTE
stmt;
DEALLOCATE
stmt;
ALTER TABLE table_name ADD COLUMN column_name integer