Re: clé étrangère et (modifier un type serial)

From: François Figarola <francois(dot)figarola(at)i-consult(dot)fr>
To: BPascal <pascal62fr(at)free(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: clé étrangère et (modifier un type serial)
Date: 2008-10-17 09:07:36
Message-ID: 48F855D8.4020705@i-consult.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

BPascal a écrit :
> Bonjour,
>
> J'ai remarqué qu'il est possible de modifier la valeur d'un
> identifiant de type serial.
Comme pour les autres colonnes d'une table ...
>
> Peut-on le faire, évidemment il faut modifier les valeurs dans les
> tables qui l'utilise comme clé externe.
> J'ai des clés externes qui lie des tables mais je n'ai pas définie de
> contrainte de clé étrangère.
>
> Doit-on obligatoirement se contraindre à avoir une clé étrangère?
A priori, non.
Par contre, dans ce cas tu vas de priver des contrôles que peut faire ta
base de données,
c'est à dire, en premier lieu, de la vérification de l'intégrité
référentielle :
soit l'impossibilité de créer un enregistrement faisant référence à un
enregistrement de la table liée
qui n'existe pas !

Autre cas :
Je lie ma table1 à un enregistrement de ma table2... plus tard, je
supprime cet enregistrement
dans table2 => l'enregistrement de table1 pointe donc sur ... plus rien,
alors que si la contrainte
est positionnée, cette suppression pourra être interdite par la base.
Si j'ai une jointure (ou par ex. une vue) => l'enregistrement joint
disparait de celle-ci.
Si je tente d'accéder à l'enregistrement supprimé => c'est une erreur !

Enfin, la contrainte de clé étrangère te permet de gérer les évènements
en cascade par rapport
à cette clé, soit en cas de sa modification, ou lors de sa suppression.
=> tu peux y attacher une fonction de déclenchement (trigger) ou
subordonner la suppression de
l'enregistrement lié.

En conclusion, si c'est pas obligatoire, ça reste quand même bien
pratique (et puis c'est une des bases
du modèle relationnel) !
>
> Cordialement
François Figarola.

--
INTERNET CONSULT
Mas Guerido
6 rue Aristide Bergès
66330 CABESTANY

Tel 04.68.66.09.29
fax 04.68.66.99.50
* francois(dot)figarola(at)i-consult(dot)fr

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message William Dode 2008-10-17 09:27:30 un ou plusieurs clusters
Previous Message Guillaume Lelarge 2008-10-17 08:55:16 Re: clé étrangère et (modifier un type serial)