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

SQL Oracle Discussion :

Ajout d'un champ clé


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Par défaut Ajout d'un champ clé
    Bonjour,
    je voudrais ajouter un champ clé au niveau d'une table existante et bien sur contenant des milliers de lignes
    cette table ne contient aucun champ key (le concepteur à claquer n'y a pas pensé )
    comment remédier à cela ?
    j'ai pensé à ajouter une colonne , que je remplie ( a chaque fois +1) , une fois fini je le add en tant que PK,
    est ce que c'est la bonne soluce ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2008
    Messages : 75
    Par défaut
    oui je crois ke tu peux faire ceci mais tu dois peut etre songer avant tout a eliminer les lignes dupliqués et la ca sera beaucoup plus facile de choisir une clé primaire parmi les colonnes de la table ou den ajouter une colonne pour jouer le role de clé primaire.

  3. #3
    Scorpi0
    Invité(e)
    Par défaut
    Salut,

    En même temps, j'en vois pas d'autres !
    Tu veux ajouter une colonne, donc tu commence par... en ajouter une !!
    Tu veux qu'elle soit PK, donc il faut d'abord la remplir, donc tu la.... remplis !!
    Ensuite tu veux en faire une PK, ça tombe bien, tu la remplis comme il fallait, donc tu la déclare... PK !!

    Donc non, pas mieux.

  4. #4
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Bonjour,

    Milliers d'enregistrements , tout est relatif, sur un serveur puissant, ce devrait pas etre long.



    Solution 1 ,

    Tu crées un sequence

    Tu créés une autre table + la nouvelle colonne PK


    tu inseres les données de la table initiale dans la seconde

    tu fais grant, trigger...,indexes...

    tu ajoutes la pk

    tu renommes l'ancienne table

    tu renomme la novelle avec le nom de l'ancien


    Solution 2

    tu ajoutes un sequence

    tu ajoutes la colonne

    tu updates ta table avec sequence

    tu ajoutes la PK

    ----------
    tu testes et vois laquelle te vas en temps d'intervention

    Bien entendu les lignes dupliquées il faut les supprimmer

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Par défaut
    Merci pour le tuyau

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajout d'un champ
    Par ines87 dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/06/2006, 19h40
  2. Réponses: 4
    Dernier message: 11/05/2006, 16h23
  3. ajout d'un champs input text dans un formulaire
    Par korrigann dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/04/2006, 15h45
  4. Ajout dynamique de champs de type file dans un formulaire !
    Par stitch dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/11/2005, 11h18
  5. Table Access : ajout d'un champ depuis VB6
    Par pcvesoul dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 28/09/2005, 09h14

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