|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 252 ![]() |
est ce que c'est possible de changer l'ordre de mes colonnes
je veux que la 20e colonne soit en 1ere position par ex ou est ce qu'il faut recreer une nlle table |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : avril 2008 Messages : 89 ![]() |
Bonjour,
je ne suis pas totalement sûr de ce que je vais dire, mais je crois bien que parler de numéro de ligne des tables postgre n'a pas vraiment de sens. Il me semble que ce n'est pas exactement comme sur Excell. D'ailleurs je crois même avoir lu que pour une même requête (sans order by) il se peut qu'au cours du temps le renvoi des lignes ne soit pas toujours ordonné de la même manière pour la même table. Si tu veux pouvoir gérer l'ordre des lignes je pense qu'il faut que tu ajoutes un id_ligne que tu gère toi même -en particulier lorsque tu ajoutes une ligne tu devras veiller à modifier ton id_ligne pour toute les lignes d'id_ligne supérieur se mettent à jour, pareil à la suppression, etc... Et dans tes requêtes tu pourras ainsi faire un order by id_ligne. Ce que je dis est peut-être faux, quoiqu'il en soit ça aura le mérite de faire remonter ton post et peut-être que d'autres te renseigneront de manière plus sûr. Mais au fait, pourquoi as-tu besoin d'un numéro de ligne ? Est-ce une information qui cractérise tes données ? Cordialement, |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : avril 2008 Messages : 89 ![]() |
Tu peux afficher tes colonnes dans un ordre donné : SELECT colonne_a_afficher_1 as colonne_2, colonne_a_afficher_2 as colonne1 FROM ma_table; Tu peux aussi les renommer. Par contre, effectivement pour modifier l'ordre dans la table je ne vois pas. A part créer une nouvelle table comme tu le dis ou bien passer par la création d'une colonne temporaire pour faire un update de tes colonnes. Mais cette seconde méthode peut-être bien plus longue à écrire comme a éxécuter à mon avis. Toutefois il est peut-être préférable d'écrire des scripts indépendants de l'ordre (réel) des colonnes dans la table, mais qui les arrangent au moment où tu t'en sers. Comme par exemple la ligne indiquée qui gère l'arrangement au moment où tu veux afficher. Sorry donc. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : janvier 2008 Messages : 121 ![]() |
Avec EMS SQL Manager http://sqlmanager.net/products/postgresql/manager/ il est possible de faire cela avec la fonction "reorder fields" mais à condition qu'aucune colonne de la table ne soit une clé étrangère d'une autre table...
Donc obliger de faire un DROP CONSTRAINT, reorder puis ADD CONSTRAINT (c'est comme ça que je fais) A moins que qlq sache désativer les contraintes d'intégrité temporairement mais je ne sais pas si c'est possible... |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 252 ![]() |
merci de vos reponses
bon apparemment il y a pas de requetes sql pour changer l'ordre des colonnes |
|
|
00
|
|
|
#6 | ||
|
Membre confirmé
![]() Inscription : janvier 2006 Messages : 227 ![]() |
bonjour, je ne sais pas si c'est recommandé ,mais en changeant les valeurs de attnum (champs qui donne l'ordre des colonnes dans la table) de la table pg_attribute on aurait un truc du style:
pour une table t avec une premiere colonne a et une deuxieme b: Code :
|
||
|
|
00
|
|
|
#7 | ||||
|
Membre régulier
![]() Étudiant Inscription : juin 2011 Messages : 122 ![]() |
je sais que je réactualise un peu ce vieux sujet mais il y a cette possibilité pour changer l'ordre des colonnes
1.Créez une nouvelle table avec les colonnes dans le nouvel ordre. 2. exécuter cette commande Code :
4. Renommer la nouvelle table avec l'ancien nom. Code :
|
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com