Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai mis en place une règle pour mettre à jour une colonne NUM à partir d'une colonne CODE lors de l'insertion d'une nouvelle ligne (si CODE = 159990099, j'extrais NUM = 99) :
CREATE OR REPLACE RULE _insert_num AS ON INSERT TO maTable DO UPDATE maTable SET num = ltrim("substring"(code, 6, 4), '0') ;
Ainsi, à l'insertion d'une nouvelle ligne, l'UPDATE remet à jour la colonne NUM pour tous les enregistrements alors qu'il suffirait qu'il ne tourne que sur la ligne insérée. Je ne trouve pas de moyen de spécifier ça dans la règle...
Merci pour votre aide,
Thomas
Hors ligne
Bonjour,
C'est normal, vous exécutez un UPDATE de toute la table sans prédicat. Pour vous simplifier la vie, il faudrait utiliser un trigger. Si vous voulez vraiment utiliser une règle, faites plutôt un DO INSTEAD voir http://docs.postgresql.fr/9.3/rules-update.html
Julien.
https://rjuju.github.io/
Hors ligne
Effectivement quand je fait un iotop sur le maitre je remarque qu'il y'a trop de lecture sur le disque et c'est les requêtes que je lance avec jmeter à partir de pgpool qui font ces lectures là pourtant je ne vois aucune requête select passer par pgpool on regardant les logs de ce dernier c'est ce que je trouve étrange.
irag
Hors ligne
Pages : 1