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

DB2 Discussion :

FK & ON DELETE


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 78
    Par défaut FK & ON DELETE
    Lors de la définition d'une FK, il est possible de stipuler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ON DELETE RESTRICT / NO ACTION / CASCADE / SET NULL
    Quelle est la différence entre RESTRICT & NO ACTION ?
    Que fait SET NULL ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    bonjour,

    Voici la doc pour une V5r4,
    http://publib.boulder.ibm.com/infoce...fzmstatabl.htm

    Recherchez les mots clef qui vous intéresse.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Par défaut
    Citation Envoyé par SuperWaza Voir le message
    Lors de la définition d'une FK, il est possible de stipuler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ON DELETE RESTRICT / NO ACTION / CASCADE / SET NULL
    Quelle est la différence entre RESTRICT & NO ACTION ?
    Que fait SET NULL ?
    Prenons l'exemple avec deux tables : SERVICES et EMPLOYES avec une contrainte de clé étrangère sur la table EMPLOYES (ex : tout employé doit être créé avec un code service existant dans la table SERVICE).

    Si on essaye de supprimer un SERVICE dont il existe des lignes dans EMPLOYES la suppression n'aura pas lieu en cas de RESTRICT ou NO ACTION.
    En cas de SET NULL, le code service dans la table EMPLOYES prendra la valeur NULL et la ligne dans SERVICE sera bien supprimée.

    Maintenant concernant RESTRICT et NO ACTION, leur comportement est quasi identique.
    Avec RESTRICT, on vérifie en premier si il n'y a pas de violation de contrainte avant de procéder à la suppression, avec NO ACTION on fait cette étape à la fin. La seule réelle différence au final se fera sur les triggers s'ils en existent.

    - Un trigger BEFORE DELETE sera toujours exécuté et ce quelque soit la règle de la contrainte (NO ACTION ou RESTRICT)
    - Un trigger AFTER DELETE sera quand même éxécuté avec une contrainte NO ACTION mais PAS dans le cas d'une contrainte RESTRICT (en cas de contrainte violée bien sur).

Discussions similaires

  1. Delete on cascade avec SQL server
    Par fadoua dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/01/2004, 11h02
  2. fonction postgresql qui delete un enr
    Par access dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/11/2003, 14h44
  3. [requête] DELETE + SELECT
    Par doohan dans le forum Requêtes
    Réponses: 6
    Dernier message: 07/07/2003, 12h27
  4. [langage] delete de fichier
    Par lolive dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2003, 15h04

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