Concernant les FK, il ne s'agit jamais que d'une contrainte d'intégrité, d'une vérification faite à l'insertion ou à la mise à jour des données.
Le "lien" entre les tables ne repose pas sur l'existence ou non d'une foreign key, mais sur l'algèbre relationnel. En clair, tu peux bien faire une jointure entre les tables que tu veux, sur les colonnes que tu veux. Si les données concordent, le SGBD/R te retournera un tuple, sinon pas (sauf bien sûr pour les left join, mais on s'éloigne).
Donc l'utilisation de la nouvelle option IGNORE implique juste que tu acceptes des incohérences éventuelles entre les données réelles, et la méta-donnée qu'est la foreign key. Ca n'a aucun impact sur les liens entre les tables.
[^] # Re: questions diverses...
Posté par Franck Routier (Mastodon) . En réponse à la dépêche Sortie de PostgreSQL 9.2. Évalué à 1.
Concernant les FK, il ne s'agit jamais que d'une contrainte d'intégrité, d'une vérification faite à l'insertion ou à la mise à jour des données.
Le "lien" entre les tables ne repose pas sur l'existence ou non d'une foreign key, mais sur l'algèbre relationnel. En clair, tu peux bien faire une jointure entre les tables que tu veux, sur les colonnes que tu veux. Si les données concordent, le SGBD/R te retournera un tuple, sinon pas (sauf bien sûr pour les left join, mais on s'éloigne).
Donc l'utilisation de la nouvelle option IGNORE implique juste que tu acceptes des incohérences éventuelles entre les données réelles, et la méta-donnée qu'est la foreign key. Ca n'a aucun impact sur les liens entre les tables.