Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Débuter
Débuter Forum d'entraide : Débuter en base de données avec PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2011, 15h42   #1
Membre Expert
 
Avatar de ludojojo
 
Homme Ludovic Solczynski
Développeur .NET
Inscription : avril 2008
Messages : 1 446
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Solczynski
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2008
Messages : 1 446
Points : 2 179
Points : 2 179
Par défaut Fonction équivalente à "Create Event" MySql

Bonjour,
Après quelques recherches, j'ai des doutes concernant la création de tâches planifiées.

Je dois migrer une base MySql vers du pgsql, chose qui n'à vraiment pas étée facile. Bref, j'utilisais un "EVENT" qui tournait en tâche de fond et me permettait de mettre à jour les champs de ma base de donnée en fonction de la date du jour.
voici la fonction utilisé dans MySQL :
Code :
1
2
CREATE EVENT `DELETE_OLD_FILES` ON SCHEDULE EVERY 1 DAY STARTS '2009-09-19 04:00:00' ON COMPLETION NOT PRESERVE ENABLE DO UPDATE link SET BoolSuppr = 1
WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) = Date
Mon problème c'est que je cherche le moyen de reproduire quelque chose de similaire pour la base pgsql.
En cherchant sur le net, il me semble avoir compris qu'il faut utiliser une fonction et ensuite un trigger qui fait appel à la fonction...
Mais je ne suis vraiment pas sur de moi, et je ne sais pas comment m'y prendre.
Je me tourne donc vers vous afin d'obtenir vos lumières.

Merci par avance pour votre aide.
__________________
Aide les autres...
Et les autres t'aideront....
Mon site DVP
Mon site perso

N'oubliez pas de voter pour les messages dont la réponse est pertinente
ludojojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 17h00   #2
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
Il n'y a pas d'ordonnanceur de tâche dans postgresql, c.a.d une fonctionnalité qui serait comparable aux JOBs d'oracle ou aux EVENTs de mysql.
Les fonctions n'y peuvent rien, ni les triggers.

La solution typique à ce besoin est d'utiliser l'ordonnanceur de tâche du système d'exploitation (=cron sous unix) qui appelle l'interpréteur psql avec un script sql embarqué.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/03/2011, 17h06   #3
Membre Expert
 
Avatar de ludojojo
 
Homme Ludovic Solczynski
Développeur .NET
Inscription : avril 2008
Messages : 1 446
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Solczynski
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2008
Messages : 1 446
Points : 2 179
Points : 2 179
si je comprend bien, il faut que je créé un script shell qui execute une commande sql...
C'est bien dommage que pgsql ne gère pas cela.

Merci pour cette information, je vais donc me tourner vers cette solution.
__________________
Aide les autres...
Et les autres t'aideront....
Mon site DVP
Mon site perso

N'oubliez pas de voter pour les messages dont la réponse est pertinente
ludojojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 17h26   #4
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
Le script en soi est l'affaire de 4 lignes, ce n'est pas trop un problème. Par exemple:
Code :
1
2
3
4
#!/bin/sh
psql -U user -d base << EOF
UPDATE TABLE .. SET... WHERE... ;
EOF
En revanche il faut un réglage des permissions pour que la connexion se fasse sans mot de passe, ou bien mettre ce mot de passe en dur dans le script via PGPASSWORD ou bien faire un fichier .pgpass.
A maintenir dans le temps mine de rien c'est quand même de l'administration.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 17h31   #5
Membre Expert
 
Avatar de ludojojo
 
Homme Ludovic Solczynski
Développeur .NET
Inscription : avril 2008
Messages : 1 446
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Solczynski
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2008
Messages : 1 446
Points : 2 179
Points : 2 179
En effet bonne information... je n'avais pas pensé au mot de passe.
Je vais me pencher la dessus et dès que j'ai quelque chose qui fonctionne, je le mettrais en ligne afin que cela puisse servir à quelqu'un d'autre.
__________________
Aide les autres...
Et les autres t'aideront....
Mon site DVP
Mon site perso

N'oubliez pas de voter pour les messages dont la réponse est pertinente
ludojojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h51.


 
 
 
 
Partenaires

Hébergement Web