Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 13/02/2017 14:49:47
- databaser
- Membre
Ajout d'une colonne à un endroit précis
Bonjour,
Une recherche sur internet ne donnant rien, savez-vous s'il est possible d'ajouter une colonne à un endroit précis sans avoir à recréer une nouvelle table ?
Merci
il y aurait la possibilité d'utiliser AFTER mais ça ne marche pas avec PGS
ALTER TABLE nom_de_la_table ADD nom_de_la_colonne type_de_donnée AFTER nom_de_la_colonne ;
Hors ligne
#2 13/02/2017 14:53:50
- ruizsebastien
- Membre
Re : Ajout d'une colonne à un endroit précis
Bonjour,
à ma connaissance, non, il faut recréer la table.
Cordialement,
Sébastien.
Hors ligne
#3 13/02/2017 16:29:34
- Marc Cousin
- Membre
Re : Ajout d'une colonne à un endroit précis
Non, il n'y a pas
Marc.
Hors ligne
#4 18/02/2017 15:59:50
- genamiga
- Membre
Re : Ajout d'une colonne à un endroit précis
Bonjour,
Tu ajoute ta colonne et ensuite avec EMS SQL Manager for PostgreSQL, même la version gratuite, il est possible de changer l'ordre des colonnes.
Mais ta table ne doit pas être référencée par des clés étrangères. Si c'est le cas, il faut supprimer ces références, changer l'ordre des colonnes et recréer les références.
Dernière modification par genamiga (18/02/2017 16:00:15)
Hors ligne
#5 18/02/2017 16:36:53
- gleu
- Administrateur
Re : Ajout d'une colonne à un endroit précis
Qu'on soit bien clair, PostgreSQL ne permet pas de changer l'ordre des colonnes. Donc, SQL Manager fait certainement une bidouille pour y arriver. Du genre, renommage de la table, création de la nouvelle table avec la nouvelle colonne au bon endroit, et transfère des données de l'ancienne table vers la nouvelle. Autant cela peut certainement aider dans certains cas, autant dans d'autres, cela risque d'être inacceptable : si la table est très volumineuse, ou si elle est fréquemment accédée, cela sera un gros soucis. Tout ça pour un intérêt nul (dans le sens, zéro).
Guillaume.
Hors ligne
#6 20/02/2017 10:01:40
- Arkhena
- Membre
Re : Ajout d'une colonne à un endroit précis
Bonjour,
La doc postgreSQL propose de créer un vue avec l'ordre des colonnes que vous souhaitez ou de recréer la table.
https://wiki.postgresql.org/wiki/Alter_column_position
Cordialement,
Arkhena
Hors ligne
#7 25/02/2017 16:04:06
- genamiga
- Membre
Re : Ajout d'une colonne à un endroit précis
Je ne sais pas comment fait SQL Manager mais c'est quasi instantané...
Ceci dit, je suis d'accord avec gleu, l'intérêt est en effet nul, si ce n'est d'avoir l'ordre des colonnes que l'on veut dans le but de clarté...c'est purement cosmétique.
Hors ligne
#8 25/02/2017 16:16:15
- rjuju
- Administrateur
Re : Ajout d'une colonne à un endroit précis
C'est quasi instantané y compris sur des tables de plusieurs dizaines/centaines de Go ? Sinon, si vous voulez savoir comment fait l'outil, configurez postgres pour tracer toutes les requêtes.
Julien.
https://rjuju.github.io/
Hors ligne
#9 26/02/2017 00:08:23
- databaser
- Membre
Re : Ajout d'une colonne à un endroit précis
Bonjour rjuju,
"configurez postgres pour tracer toutes les requêtes" => on fait ça comment ?
Est-ce que cela peut servir à tracer notre travail sur la BDD que l'on a ? Le script SQL peut servir à ça, mais il n'est pas suffisant - par ex, il n'intègre pas le résultat d'une requête, etc.
Merci...
Hors ligne
#10 26/02/2017 09:47:45
- gleu
- Administrateur
Re : Ajout d'une colonne à un endroit précis
Il faut suffit de configurer le paramètre log_min_duration_statement à 0 pour cela. Suivant l'activité de votre serveur, cela peut n'avoir aucune conséquence comme cela peut générer énormément d'écritures dans les traces. Donc à faire avec prudence.
Guillaume.
Hors ligne
#11 26/02/2017 11:46:47
- rjuju
- Administrateur
Re : Ajout d'une colonne à un endroit précis
Est-ce que cela peut servir à tracer notre travail sur la BDD que l'on a ? Le script SQL peut servir à ça, mais il n'est pas suffisant - par ex, il n'intègre pas le résultat d'une requête, etc.
Quel est votre besoin exactement ?
Julien.
https://rjuju.github.io/
Hors ligne
#12 26/02/2017 13:24:04
- databaser
- Membre
Re : Ajout d'une colonne à un endroit précis
garder une mémoire des traitements que je fais sur les données dans PGS car il faut parfois revenir sur des traitements anciens et il m'est impossible de retrouver ce que j'ai fait, les résultats, les difficultés, etc.
Le point de départ sont les métadonnées, ça j'ai compris, mais après ?
Dernière modification par databaser (26/02/2017 13:25:29)
Hors ligne
Pages : 1