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 :

Code UPDATE afin de remplacer une valeur


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 27
    Points : 11
    Points
    11
    Par défaut Code UPDATE afin de remplacer une valeur
    Je me lance dans la base de données SQL.

    Je m'explique:
    Dans la table oc_product_option`
    je dois modifier la valeur option_id=16
    par option_id=17

    J'ai donc créé la requête suivante en suivant les tutos trouvés sur le net :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE oc_product_option
        SET option_id=16 [, option_id=17]
        [WHERE option_id=16]
    Afin d'éviter de recharger la base, je voudrais savoir si mon code est correct.

    Merci d'avance.

  2. #2
    Membre habitué
    Homme Profil pro
    Data Ingenieur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Data Ingenieur
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Points : 162
    Points
    162
    Par défaut
    Tu n'as cas tester

    Si tu lance l'update puis juste après un select dans la même session ( sans commit) alors tu pourras voir le résultat. Si tu rollback, ça revient a l'état initial. Sinon pour ton code ça doit être ça .


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE oc_product_option    SET option_id=17 WHERE option_id=16

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    J'ajouterais, qu'il faut quand même prendre quelques précautions.

    En effet, option_id est très certainement une clé primaire, donc la modification ne sera possible que si cette clé ne comporte pas déjà un n° 17 (règle d'unicité) et qu'elle n'est pas utilisée dans une autre table comme clé étrangère (Intégrité référentielle).

    En principe, l'indice de la clé primaire ne devrait jamais être modifié et devrait autant que faire s'appuyer sur colonne auto-incrémentée.

    @+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par seabs Voir le message
    Bonjour,

    J'ajouterais, qu'il faut quand même prendre quelques précautions.

    En effet, option_id est très certainement une clé primaire, donc la modification ne sera possible que si cette clé ne comporte pas déjà un n° 17 (règle d'unicité) et qu'elle n'est pas utilisée dans une autre table comme clé étrangère (Intégrité référentielle).

    En principe, l'indice de la clé primaire ne devrait jamais être modifié et devrait autant que faire s'appuyer sur colonne auto-incrémentée.

    @+
    les valeurs 16 et 17 pour option_id existent déjà. C'est pas bon ? Et quand je ragarde la base j'ai au moins 4 tables où se trouve aussi cet option_id. Il faudrait que je lance une requête sur toutes les tables ?

    Merci encore.

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 44
    Points
    44
    Par défaut
    Qu'est ce que tu as en base actuellement ?
    1/ dans table oc_product_option, y a-t-il déjà une ligne option_id=17 ?
    2/ dans les tables périphériques qui pointent vers le champ option_id, est-ce qu'il existe des lignes qui pointent vers option_id=16 ?

    Si la réponse est NON aux 2 questions, tu peux lancer le script d'attila. Sinon faut en reparler.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    @abbepierre94

    @attila771 a répondu à ta question avant que tu la poses.

    les valeurs 16 et 17 pour option_id existent déjà. C'est pas bon ? Et quand je ragarde la base j'ai au moins 4 tables où se trouve aussi cet option_id. Il faudrait que je lance une requête sur toutes les tables ?
    @+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 27
    Points : 11
    Points
    11
    Par défaut
    Laissez tomber il y a trop de modifs à faire du coups j'ai réaliser les modifs à la main directement sur chaque produit.

    Merci quand-même. En espérant que ce bout de code pourra quand-même servir à quelqu'un qui à une requête simple

    Merci encore.

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    À mon avis, la table oc_product_option est plutôt une table associative et option_id est une clé étrangère. Il peut donc être logique de vouloir la modifier et la requête proposée par attila771 fonctionnera très bien.

    Par contre si option_id est la clé primaire auto-incrémentée de la table oc_product_option, n'y touche pas !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/11/2008, 16h53
  2. Remplacer une valeur <null> par zéro
    Par diablotin dans le forum SQL
    Réponses: 2
    Dernier message: 28/08/2007, 21h07
  3. Remplace une valeur dans une colonne
    Par roger34 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/06/2007, 22h44
  4. [INSERT / UPDATE] Remplacer une valeur vide par NULL
    Par jissay dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 28/09/2006, 14h15
  5. [VBA-E] remplacer une valeur #N/A
    Par aarlock dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/08/2006, 04h13

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