IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Changer la position d'un attribut dans une table?


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 117
    Points : 54
    Points
    54
    Par défaut Changer la position d'un attribut dans une table?
    Salut a tous!!
    Je suis confronter à un petit problème sur mes tables SQL...j'ai ma petite idée sur la question (je pense que ce n'est malheureusement pas possible) mais je voudrais avoir votre avis.

    Alors voila : j'ai une table avec une bonne centaine d'attributs, et je voudrais modifier la position d'un de mes attributs (au lieu que ce soit le 100ème attribut de ma table je voudrais que ce soit le 80ème => cet attribut est mal "chronologiquement" mal placé!!) sans bien sur me retaper toute la définition de la table?? (ceci afin de pouvoir faire un accès aux attributs via jdbc en utilisant une boucle while avec un i qui augmente de 1 a 1)

    Si vous avez une petite idée, elle est le bienvenue!!

    Merci d'avance!

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Moi je pense directement à une requête ou tu places tes attributs comme bon te semble. Mais il y a peut-être plus pratique.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 117
    Points : 54
    Points
    54
    Par défaut
    quelle genre de requete??y'a peut etre moyen que ça me convienne parfaitement!

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    En faisant un SELECT *, vous n'avez JAMAIS AUCUNE ASSURANCE que le serveur de bases de données vous renverra les colonnes dans l'ordre de la création.

    En effet dans les SGBDR il n'existe AUCUNE notions d'ordre implicite, car les bases de données reposent sur les mathématiques ensemblites et les ensemble ne possèdent pas d'ordre.

    pas d'ordre ni pour les lignes, ni pour les colonnes.

    Donc votre demande est ... farfelue et inopinée !

    Le seul moyen de préciser l'ordre des colonnes d'un SELECT est de les écrires à la queue leu leu les unes après les autres...
    mais une table de 100 colonnes, c'est généralement une abération....

    Utilisez des fichiers Cobol ce sera plus simple, plus efficace et plus rapide d'accès!

    A +

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir,

    SQLpro a tout dit, c'est net, précis et imparable.

    Maintenant, si vous avez le couteau sous la gorge, vous pouvez toujours créer une vue dans laquelle le nom de la 100e colonne figurera en 80e position.

    Je ne sais pas si cette façon de faire répond à votre problème, c'est à vous de voir, en fonction de votre algorithme séquentiel.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    La question est "quel est ton SGBD ?". Sous Oracle, ce n'est pas possible de changer l'ordre des colonnes (pour les excellentes raisons avancées par SQLpro ), mais sous MySQL c'est un simple ALTER TABLE... CHANGE... AFTER...
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 71
    Points : 59
    Points
    59
    Par défaut
    ...peut-être en :
    0. empêcher les acces au SGBD (autre ce celui qui suit)
    0'-faire une p'tit sauvegarde, il n'y a pas trop de précautions quand on touche aux données, il faut être capable de revenir en arrière sur cette manip, même si elle est simple
    1. créer une Table2 (avec les colonnes dans le bon ordre, mais qu'est ce que le bon ordre ? ...)
    2. supprimer les contraintes d'intégrite de Table1
    3. copier les lignes de Table1 vers Table2
    4. recréer les contraintes d'intégrité pour Table2
    5. quelques test (là aussi le quelque...)
    5'.permettre à nouveau l'accès au SGBD

    ensuite c'est bon, mais c'est un peu lourd...est-ce çà en vaut la peine ?

    Il me semble que l'ordre des colonnes retrounées par un SELECT est celui du CREATE TABLE, et c'est toujours le même, heureusement pour les applicatifs...

  8. #8
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    C'est ce que j'avais fait lors de mon dernier projet Oracle... j'aime bien quand les choses sont dans l'ordre que j'ai décidé !
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

Discussions similaires

  1. Changer la position d'un champs, dans une BDD
    Par godjojo dans le forum Débuter
    Réponses: 3
    Dernier message: 01/10/2008, 07h49
  2. Réponses: 3
    Dernier message: 10/01/2008, 22h03
  3. [Excel] changer la position d'un mot dans une cellule
    Par VlaMonPseudo dans le forum Excel
    Réponses: 3
    Dernier message: 25/07/2007, 16h05
  4. changer le type d'un attribut dans une base oracle 8i
    Par vrossi59 dans le forum Oracle
    Réponses: 3
    Dernier message: 24/02/2006, 15h28
  5. Position d'un enregistrement dans une table
    Par polinevol dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/01/2006, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo