PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 22/08/2011 11:57:58

Selzig
Membre

Add Column After

Bonjour,

ADD COLUMN AFTER n'existe pas en pgSQL ? Comment fait-on alors ?

Merci. Gilles

Hors ligne

#2 22/08/2011 13:32:07

gleu
Administrateur

Re : Add Column After

Il n'est en effet pas possible d'indiquer la position d'une nouvelle colonne. Ce sera forcément la dernière de la table.


Guillaume.

Hors ligne

#3 22/08/2011 13:32:24

kenrio
Membre

Re : Add Column After

tu veux rajouter une colonne à un endroit précis dans ta table c'est ça ?

moi je n'ai pas trouvé, il me semble qu'on ne peut mettre qu'a la suite des autres colonnes, si y a une solution je suis preneur aussi.

edit : j'avais bien cherché tongue

Dernière modification par kenrio (22/08/2011 13:32:48)

Hors ligne

#4 22/08/2011 13:35:02

gleu
Administrateur

Re : Add Column After

La seule solution revient à recréer la table, ce qui peut être très gênant pour les utilisateurs. De toute façon, l'ordre réelle des colonnes dans la définition n'a aucune raison d'affecter un programme.


Guillaume.

Hors ligne

#5 22/08/2011 13:36:16

kenrio
Membre

Re : Add Column After

ma collègue voulait pouvoir mettre ses colonnes où bon lui semble, c'était en fait juste pour pouvoir faire une sorte de classement ( faire jolie.. tongue )

Hors ligne

#6 22/08/2011 13:38:25

gleu
Administrateur

Re : Add Column After

Oui, c'est souvent une demande (de pouvoir faire joli), et ça me paraît tout à fait légitime. Dans ce cas, le seul moyen, c'est de re-créer la table. À mon avis, ce n'est pas à PostgreSQL de proposer ça mais à des outils comme pgAdmin. Cependant, même dans ce cas, cela demandera une réécriture de la table, ce qui peut être très gênant pour les utilisateurs.


Guillaume.

Hors ligne

#7 22/08/2011 15:02:26

Selzig
Membre

Re : Add Column After

Dans mon cas, c'est "un peu" important. Les 3 ou 4 dernières colonnes de chaque table sont traitées automatiquement par Lazarus (xxPANNE, xxUSER, xxPOSTE, xxSTAMP). Mes routines vont chercher directement les 4 dernières colonnes.

J'apprécie peu pour l'instant les divers produits que j'ai rencontrés pour gérer les tables sous pgSQL... surtout comparés à ceux disponibles pour mySQL. Ces "limitations" -qui n'en sont pas vraiment en réalité- expliquent certainement cela. Donc, pour cette histoire de déplacement des colonnes, j'ai réalisé un petit utilitaire pour pouvoir corriger mes tables (avec création d'une table temporaire en effet)... Cela à l'air de fonctionner. Je l'améliore un peu et le mettrai à dispo " en l'état" avec le code source (s'il y a des Pascaliens...).

Donc je considère ce problème mineur réglé. Pour le reste je suis satisfait : sur des tables importantes avec des contraintes fortes, des verrous & co, des procédures stockées, des LIMITs, des OFFSETs, le tout fonctionnant à distance (ie par Internet), j'obtiens un fonctionnement en terme d'utilisation de nos bases similaire à celui de mySQL implanté sur le même serveur. Je dois reconnaître qu'à ce niveau, ayant essayé il y a 3 ans, j'avais plus qu'un doute.

Cordialement. Gilles

Dernière modification par Selzig (22/08/2011 15:30:41)

Hors ligne

#8 22/08/2011 18:45:47

daamien
damien clochard

Re : Add Column After

Pourquoi ne pas utiliser une vue ?

CREATE VIEW ma_vue_avec_les_colonnes_ordonnées AS
SELECT  [...] , xxPANNE, xxUSER, xxPOSTE, xxSTAM
FROM ma_table;

Hors ligne

Pied de page des forums