Besoin d'éclaircissement et de conseils sur les clés étrangères
Bonjour,
je cherche à créer des références d'intégrité avec les clés étrangères, j'ai fait plusieurs tests et j'ai du mal comprendre la différence entre
Code:
ON DELETE NO ACTION
et sur la contrainte de clé étrangère suivante:
Code:
1 2 3 4 5 6 7 8 9
| alter table CHANTIERS add foreign key (demande)
references DEMANDE (identifiant)
MATCH FULL
ON DELETE NO ACTION
ON UPDATE NO ACTION;
/*
j'ai testé également avec ON DELETE RESTRICT
et ON DELETE CASCADE
*/ |
Sur mes 2 tables de test (CHANTIERS et DEMANDE, relation entre les champs respectifs demande et identifiant), j'ai créé 1 demande '8' et 2 chantiers associés '4' et '6'.
Selon la contrainte (restrict, no action et cascade), j'ai tenté de supprimer la demande (avec des chantiers liés) ou les chantiers liés sans toucher à la demande.
Lorsque j'utilise NO ACTION ou RESTRICT:
- impossible de supprimer la demande 8 si les chantiers 4 et 6 existent.
- je peux supprimer les chantiers 4 et 6, la demande 8 n'est pas supprimée.
Avec CASCADE:
- supprimer la demande 8 supprime les 2 chantiers liés 4 et 6.
- je peux supprimer les chantiers 4 et 6, la demande 8 n'est pas supprimée.
Ma question est la suivante: quelle différence entre RESTRICT et NO ACTION ?
Ce message fait suite à mon précédent sans réponse...