Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je me perds un peu dans des termes relatifs aux clés étrangères donnés dans la documentation mais pas expliqués plus clairement que ça, visiblement...
Si je prends un exemple simple :
> une table camion avec les attributs : cam_id, cam_immatriculation
> une table intervention avec les attributs : int_id, int_date, int_duree et int_cam_id
La table intervention comporte une clé étrangère qui est la clé primaire de la table camion.
Questions :
- Quelle est la table référençant ?
- Quelles sont les colonnes et lignes référencées ?
- Quelles sont les lignes de référence ?
- Quelles lignes référencent quelles lignes ?
Merci beaucoup !
Thomas
Dernière modification par Thomas Williamson (04/06/2013 15:13:43)
Hors ligne
La table référençante est la table intervention, qui référence la table camion.
La table référencée est la table camion.
La colonne référencée est la clé primaire de la table camion, soit la colonne camion.cam_id.
Les lignes référencées sont celles de camion pour lesquelles on trouve intervention.int_cam_id=camion.cam_id.
Les lignes de la table intervention référencent celles de camion.
Est-ce plus clair ?
Dernière modification par SAS (04/06/2013 18:19:22)
Stéphane Schildknecht
Conseil, formations et support PostgreSQL
http://www.loxodata.com
Hors ligne
Bonjour,
C'est clair, merci beaucoup ! Je posais la question par rapport à l'utilisation de l'action référentielle RESTRICT. D'après ce que j'ai compris, celle-ci se paramètre au niveau de la clé étrangère (ici : int_cam_id) et définit les répercutions sur la table qui référence (intervention) d'actions effectuées sur la table de référence (camion).
Par exemple, écrire ON DELETE RESTRICT indique qu'il sera nécessaire qu'aucune ligne de la table intervention ne fasse référence à un camion donné pour pouvoir supprimer ce camion de la table camion. Ecrire ON DELETE CASCADE indique que la suppression d'un camion donné de la table camion aura pour conséquence la suppression des lignes de la table intervention qui le référencent. Même comportement avec les ON UPDATE RESTRICT / CASCADE pour les mises à jour (les modifications apportées aux enregistrements de la table de référence).
C'est bien ça ? J'aurais juste besoin de savoir si j'ai bien interprété les choses...
Bonne journée et merci encore !
Thomas
Hors ligne
Bonjour,
C'est bien cela.
Votre interprétation est la bonne.
Stéphane Schildknecht
Conseil, formations et support PostgreSQL
http://www.loxodata.com
Hors ligne
Merci beaucoup !
Thomas
Hors ligne
Pages : 1