PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

déclencher un INSERT au moment d'un SELECT

Technique - général | déclencher un INSERT au moment d'un SELECT

Par flag2006 le 31/10/2007 - 13:59

Bonjour,

puisque les triggers ne fonctionnent pas sur un SELECT, comment déclencher un INSERT dans une table à chaque SELECT sur une autre. Il s'agit d'enregistrer des informations de statistiques à chaque fois qu'un SELECT est fait. Mon problème est d'optimiser ce processus, c'est à dire de ne pas avoir à attendre la fin de la requête SELECT avant de commencer ma procédure qui fera l'INSERT, un peu comme un trigger... En cas de nombreuses requêtes SELECT simultanées, ça risque de ralentir fortement le processus si les 2 taches ne sont pas décorrelées vu qu'un INSERT est plus couteux en temps et que l'on créé une file d'attente en écriture. Mais peut-être je me trompe ?
Quelqu'un a-t'il de l'expérience là-dessus ?

Merci

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Les rules

sparky/ = 31 Octobre, 2007 - 14:07

tu peux essayer les rules :
http://docs.postgresqlfr.org/8.1/rules-update.html
et
surtout http://docs.postgresqlfr.org/8.1/sql-createrule.html


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.