|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité régulier
![]() Inscription : octobre 2007 Messages : 42 ![]() |
Bonjour,
Je m'occupe d'un programme qui fait des delete et des insert sur une table. On m'a demandé de chercher pourquoi on ne fait pas simplement des update. J'ai répondu naïvement qu'on ne peut pas faire d'update sur un champ de la clé primaire. Sauf que j'ai eu l'air bête quand, en effectuant un update en test par spufi sur un champ de la clé primaire, ça a fonctionné. J'ai regardé la ddl : Code :
Code :
L'index clusterisé: Code :
Je me dis alors que la règle c'est peut être qu'on ne peut pas faire de mise à jour sur un élément de l'index cluster. Sauf que quand j'essaye de faire un update par spufi sur le numpar, ça marche! Du coup je me demande quels sont les champs qui sont impossible de mettre à jour par DB2? Avez vous une idée? Merci d'avance! |
||||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 882 ![]() |
DB2 refuse de modifier la valeur de la clé primaire (ou plus généralement d’une clé candidate) d’une table T1 seulement quand cette clé est référencée par une clé étrangère d’une table T2 (ou T1 elle-même) et que cette clé étrangère a la même valeur que celle de la clé primaire que l’on veut modifier. C’est un a priori « philosophique » (sic) énoncé dans le document IBM Database 2 Referential Integrity Usage Guide - GG24-3312-0 : June 1988, page 48 :
The reason for this restriction is philosophicalYes sir! Manifestement vous n'êtes pas dans cette situation. N.B. A la page 50 du document : One cannot update the primary key value for a row that has a dependent row, because DB2 only supports the RESTRICT option of the UPDATE RULE. However, the value of a primary key may be changed using the UPDATE statement as long as it is not a parent row.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|
|
00
|
|
|
#3 | |
|
Invité régulier
![]() Inscription : octobre 2007 Messages : 42 ![]() |
Citation:
Merci beaucoup pour ta réponse!
|
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
peut-être pour les clefs auto-incrémentée ?
|
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 096 ![]() |
Citation:
Jusqu'à la V7 incluse la mise à jour d'une colonne d'un index de partition avait une réputation exécrable en terme de concurrence. Par exemple ( trouvé sur un blog grâce à Google ) : Citation:
Peut-être que votre programme a gardé trace de cette contrainte du passé ... |
||
|
|
00
|
|
|
#6 | |
|
Invité régulier
![]() Inscription : octobre 2007 Messages : 42 ![]() |
Citation:
Par contre je me demande comment DB2 reconnait les champs qui participent au numéro de partition ne connaissant pas la règle. je me demande même comment il reconnait le champ partition? |
|
|
|
00
|
|
|
#7 | |||
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 096 ![]() |
Citation:
Citation:
Citation:
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com