Les étapes d'une opération de mise à jour sont les suivantes :
1. Appel du trigger exécuté avant la mise à jour.
2. Vérification des contraintes de clé étrangère pour toutes les tables dépendantes
qui spécifient l'option "On Update Restrict". Le système vérifie que la modification
d'une colonne
Opérations de mise à jour
de cette ligne ne laisse pas de lignes orphelines dans une table
dépendante.
3. Mise à jour de la ligne et vérifications (par exemple, pour les données décimales
invalides) autres que les contraintes.
4. Appel du trigger exécuté après la mise à jour.
5. Vérification des contraintes clés étrangères de toutes les tables dépendantes
qui spécifient l’option « On Update No Action ».
6. Vérification de toutes les contraintes de clé étrangère de cette table.
7. Vérification des contraintes de clé primaire, unique et de contrôle.
Dans cette séquence, on peut remarquer l’une des différences existant entre les
règles « On Update Restrict » et « On Update No Action » pour une contrainte de clé
étrangère : il existe une implication subtile mais importante liée au moment où
ces contraintes sont vérifiées. Actuellement, DB2 UDB ne prend pas en charge l’option
de clé étrangère « On Update Cascade » pour les mises à jour comme il le fait pour
les suppressions.
Cependant, si la clé étrangère précise « On Update No Action », on peut mettre en
oeuvre sa propre action en utilisant un trigger exécuté après la mise à jour. Pour
modifier par exemple toutes les valeurs de clés étrangères des lignes dépendantes
lorsqu’on change la clé primaire d’une ligne parent, on peut écrire un programme
déclencheur exécuté après la mise à jour pour effectuer les modifications des
tables dépendantes. Ainsi, au moment où l’étape 5 vérifiera la table dépendante
à la recherche de lignes sans correspondance, toutes les lignes dépendantes trouveront
leur équivalent dans les lignes parents mises à jour.
Notez que l’on ne peut pas mettre en oeuvre cette approche en utilisant un trigger
exécuté avant la mise à jour. Supposons que ce dernier tente de remplacer les
valeurs des clés étrangères des lignes dépendantes par la valeur de la nouvelle
clé primaire de la ligne parent. La ligne parent n’est pas encore modifiée. Aussi,
les mises à jour des lignes dépendantes seront bloquées car les nouvelles valeurs
de leurs clés étrangères ne correspondent à aucune ligne parent.
Par conséquent, étant donné que l’on doit utiliser un trigger exécuté après la
mise à jour pour mettre en oeuvre une modification en cascade, il faut aussi utiliser
« On Update No Action » pour différer la vérification de la contrainte de clé étrangère
jusqu’à ce que le programme exécuté après la mise à jour soit terminé.
Téléchargez cette ressource
Mac en entreprise : le levier d’un poste de travail moderne
Ce livre blanc répond aux 9 questions clés des entreprises sur l’intégration du Mac : sécurité, compatibilité, gestion, productivité, coûts, attractivité talents, RSE et IA, et l’accompagnement sur mesure proposé par inmac wstore.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Mythos révèle les limites d’un Zero Trust centré sur le réseau
- Faire évoluer la souveraineté des données du statut d’ambition politique à son application opérationnelle
- Mythos et modèles-frontières : quel avenir pour la cybersécurité en France et en Europe face à l’IA ?
- IA agentique : des investissements massifs freinés par des données insuffisamment préparées
Articles les + lus
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Avril 2026
À la une de la chaîne Tech
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Avril 2026
