Modification dans des tables = suppression dans 1 vue

Rechercher

Modification dans des tables = suppression dans 1 vue

Par paintbox  -  5 reponses  -  Le 18/05/2011 14:13  -  Editer  - 

Hello Cyrano,

j'ai un phénomène étrange

J'ai un formulaire qui me permet de modifier les données d'un produit déjà existant. La modification de ces données se fait sur 3 tables différentes (table produits, table prix, table images). Je donc fais une mise à jour avec une requete "UPDATE SET "

Les modifications se font correctement.

J'ai également une vue qui regroupe les informations des différentes tables. Et c'est là que se situe mon problème. Le produit modifié n'apparaît plus dans la vue.

Comment explique-tu cela?

La vue reprendre le contenu d'une ou plusieurs table(s) au moment où on l'interroge ?

Merci pour ton aide.

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 18/05/2011 15:20  -  Haut de page  - 

Logiquement, c'est parce que les condition de restriction de la requête qui construit la vue ne sont plus valides pour le produit en question.

Une vue n'est pas comme une table en ce sens qu'elle ne garde rien en stock, elle est exécutée à chaque consultation, ce qui fait que la moindre modification dans une des tables utilisée dans la requête modifie le contenu de la vue automatiquement.

Isole la requête SELECT de ta vue et tente de voir si une modification permettrait de récupérer le produit modifié : si tu trouves, mets à jour ta vue la la réexécutant avec un « CREATE OR REPLACE ...» au lieu du « CREATE ...» tout court de la première mise en place.

 
Par paintbox  -  Le 18/05/2011 20:39  -  Haut de page  - 

Hello Cyrano,

merci pour ces conseils je vais essayer en remplaçant « CREATE ...» par « CREATE OR REPLACE ...»

Je te tiens au courant

 
Par paintbox  -  Le 22/05/2011 17:06  -  Haut de page  - 

Hello Cyrano,

 

me revoilà j'ai donc essayé en remplaçant le simple "CREATE" par " CREATE OR REPLACE ...". Cela ne fonctionne pas non plus.

En fait dès que je fais une modification sur un produit, il disparait de ma vue alors que les modifications ont bien été faites dans les différentes tables.

Autre chose d'étrange c'est que si je supprime la vue et que je la créé à nouveau, les produits "modifiés" n'apparaissent toujours pas alors qu'ils sont toujours présent dans les tables. Etrange puisque la vue est sensée aller puiser les infos demandées dans les différentes tables ? Je me trompe ?

 
Par paintbox  -  Le 22/05/2011 17:42  -  Haut de page  - 

J'ai identifié le problème, il semble que se soit le fait que lorsque je modifie un produit un champs est vide (pas de données) . Ce champs sert en fait de lien avec une autre table dans ma vue.

Je teste encore pour être certain.

 
Par Cyrano  -  Le 23/05/2011 16:11  -  Haut de page  - 

Ça peut venir d'un défaut dans la modélisation en ce sens que certaines colonnes devraient êter« NOT NULL » : si elles ne le sont pas, on peut enregistrer deslignes mais les liens ne seront pas garantis si les clés étrangères ne sont pas en « NOT NULL » et qu'aucune valeur n'est fournie.

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |