|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 7 ![]() |
Je poste à nouveau ce message dans cette section car il relève plus du langage SQL que de postgres, désolé pour ceux qui me liront 2 fois
J'utilise postgresql 8.3 et au fil du temps ma base se retrouve dans un état pas logique malgré l'utilisation des transactions. J'ai trois tables (qui me posent problème) pour gérer des publicités, une contient le forfait et les deux autres comptent les pub vues par les utilisateurs et les visiteurs. Chaque fois qu'une pub est affichée j'incrémente un compteur dans la table qui gère le forfait et une ligne est créée dans une des tables des pubs vues (logué/utilisateur) et (non logué/visiteur). Le problème est que le nombre incrémenté fini par être différent du count des lignes des 2 autres tables. Voici les tables mises en cause : Code :
Code :
mon problème au final: Code :
Code :
SELECT nb_pub_vu FROM pub_forfait WHERE id_pub_forfait = 'XX'; Merci de votre aide. |
||||||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 7 ![]() |
Personne n'a d'idée? ou c'est le fait que ce soit des pubs qui ne vous donne pas envie de répondre
Plus sérieusement es-ce qu'un accès simultané à ce script peut entraîner une erreur de comptage lors du row = row+1? J'ai découvert le verrouillage explicite, es-ce que certains d'entre vous ont déjà utilisé de tels outils? et dans quels cas? Je désespère ce compteur va finir par partir à la poubelle et laisser place à des gros count()... Merci à Alain du 24 pour cette scrupuleuse correction grammaticale |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour,
Citation:
Des suppressions dans les tables aussi ! (si elles ne décrémentent pas les compteurs) De même que des insertions qui ne passent pas par votre code (une autre appli ? insertions à la main ?...) Ce code est-il dans un trigger "instead of insert" ? Citation:
|
||
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 7 ![]() |
Merci aieeeuuuuu pour cette réponse.
Changer le niveau d'isolation de mes transactions ou mettre un trigger me parait complexe pour mon modeste niveau en sql, la fiabilité ne sera pas au rendez-vous!! Est-il possible de le faire grâce à une seule requête? Pour vous faire comprendre l'idée: Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com