Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1469 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Est-il possible d'effectuer plusieurs UPDATE en une fois?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Est-il possible d'effectuer plusieurs UPDATE en une fois?

n°1622232
Alload
Posté le 11-10-2007 à 13:01:29  profilanswer
 

Bonjour,
 
j'aimerais savoir s'il etait possible d'effectuer plusieurs UPDATE en une fois pour ne pas casser l'integrite des tables dans le cas ou l'on modifierais des clefs entrangeres par exemple.
 
Un exemple:
 
J'ai deux tables: PARENT et CHILD. La clef de PARENT est ID and CHILD a aussi une colonne ID qui est attache a l'ID de PARENT (clef etrangere).
Disons que j'ai une entree "TEST" dans PARENT.ID et une entree "TEST" dans CHILD.ID.
 
J'aimerais modifier l'ID de ces deux entrees et mettre a la place "PLOUP". Toutefois je n'aimerais faire cela sans avoir a creer une nouvelle entree dans PARENT et detruire l'ancienne une fois CHILD mise a jour. Y a-t-il une facon de faire cela en regroupement les deux UPDATE necessaires (dans une requete SQL independante du type de serveur)?
 
Merci :hello:

mood
Publicité
Posté le 11-10-2007 à 13:01:29  profilanswer
 

n°1622283
fred777888​999
Posté le 11-10-2007 à 13:59:01  profilanswer
 

Non, mais tu as les transactions qui permettent de gerer tres bien ces contraintes. Si tu aime perdre la maitrise de ce que tu fais, tu peux aussi essayer d'utiliser un trigger.
En primes, la modification de clefs, c'est vraiment à éviter.
Si ton champ clef est modifiable, ca signifie que ce n'est pas une clef et que tu ferai bien mieux d'utiliser un numero sequentiel comme clef technique.

n°1622306
jpcheck
Pioupiou
Posté le 11-10-2007 à 14:22:33  profilanswer
 

BOnjour, de plus, comme tu n'indiques pas le sgbd utilisé, les particularités et limites techniques varient de l'un à l'autre :p

n°1622313
FlorentG
Unité de Masse
Posté le 11-10-2007 à 14:28:06  profilanswer
 

C'est effectivement bizarre de vouloir changer la clé :heink:

n°1622316
MagicBuzz
Posté le 11-10-2007 à 14:31:05  profilanswer
 

Quel SGBD ?
 
Assez d'accord avec Fred, dans la mesure où... Un identifiant, c'est pas fait pour être modifié :o
 
Cependant, la plupart des SGBD permettent tout de même de jouer avec (mais c'est normalement désactivé par défaut, parceque très dangereux).
 
C'est ce qu'on appelle les "cascade".
 
Sous Oracle par exemple, pour un UPDATE, je ne sais pas si ça marche. Mais un DELETE, tu ajoutes "CASCADE CONSTRAINTS" à la fin de ta requête, et supprimer un père a pour résultat de supprimer tous ses fils. On voit immédiatement la dangerosité de la chose, au cas où ces enfants soient eux-même parents : en gros tu fais "delete personne where nom in ('Adam', 'Eve') cascade constraints" et tu vide ta table :D
 
Gare aux dead locks aussi, si tu as des dépendances cycliques.
 
Bref.
 
Avec Access et SQL Server, c'est des options à spécifier sur les contraintes FK : tu peux spécifier des actions particulières, UPDATE et DELETE (par exemple, planter sur DELETE, mais mettre à jour en cascade sur UPDATE).

n°1622323
MagicBuzz
Posté le 11-10-2007 à 14:41:53  profilanswer
 

Sinon, juste comme ça...
 
1/ On dit pas "PLOUP", mais "La poule attrappée par le poulpe a fait pouf !".
2/ Sans rire, c'est quoi ploup ? Une valeur, ou si tu veux renommer ton champ id avec ce nom ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Est-il possible d'effectuer plusieurs UPDATE en une fois?

 

Sujets relatifs
plusieurs fonctions JS dans un onsubmitXSD : possible ou pas possible ?
[Symfony] Récup dans une variable au lieu d'affichage, possible ?[SQL] Requête UPDATE complexe
[Debutant] Plusieurs TABLE l'une en dessous de l'autre[Macro WORD] Comment insérer plusieurs images ?
compiler plusieurs pagesoptimisation de plusieurs regexp en une seule.
Rafraichir plusieurs div en même tempsAfficher/masquer plusieurs div à un seul endroit
Plus de sujets relatifs à : Est-il possible d'effectuer plusieurs UPDATE en une fois?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR