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
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
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,
Sorry j'ai lu ligne au lieu de colonne !
![]()
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.
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...
merci de vos reponses
bon apparemment il y a pas de requetes sql pour changer l'ordre des colonnes
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:
evidemment il ne faut pas de contraintes...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 update pg_attribute set attnum=3 where attname='a'; update pg_attribute set attnum=1 where attname='b'; update pg_attribute set attnum=2 where attname='a';
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
3.Effacez ou renommez la table old_table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 INSERT INTO new_table SELECT columnsinneworder FROM old_table;
4. Renommer la nouvelle table avec l'ancien nom.
tiré de http://dev.mysql.com/doc/refman/5.0/...umn-order.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER TABLE new_table RENAME old_table;
Bonjour, oui je réactualise ce post, puisque je suis toujours à la recherche d'un moyen pour réorganiser mes colonnes
simplement avec la méthode que tu propose Agriesean, il serait bien possible de perdre les contraintes d'intégritésà moins qu'on est sûr que la clause insert into dupliquera ces dernières pour la table nouvellement rajoutée.
Je suis preneur de toute méthode testée et fiable qui permet d'attiendre cet objectif
merci d'avance
Salut
Je soupçonne l’existence dedans tes codes. Ce qui pousse effectivement à connaitre un ordre établi des colonnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM
Si tel est le cas, il faut éviter de tels pratiques.fait plus que ce qu'on a besoin et consomme des ressources pour rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM ...
@+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager