IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Comment utiliser un trigger


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 168
    Points
    168
    Par défaut Comment utiliser un trigger
    Bonsoir tout le monde

    Je cherche un bon tutorial sur les triggers afin de pouvoir les utiliser sur mon projet (si il sont adaptés à mon besoin). Pour info, j'utilise SQlite.

    Je cherche à implementer un systeme d'historique mensuel. En gros, je vais ajouter une colonne update_date à plusieurs table. Si on effectue un update d'une de ces tables, je souhaiterai mettre a jour la colonne update_date à la date courante. De plus, si la colonne update_date avant update correspond à un autre mois que celui en cours, je souhaite sauvegarder cette valeur, c'est a dire inserer (dupliquer) la valeur à mettre à jour avant d'effectuer l'update.

    Suis-je clair ?

    un truc genre (je sais, c'est pas du SQL) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    trigger_before_update_cost :
    if substr(1, 7, cost.update_date) != substr(1, 7, date('now')) then
    insert current_value into cost
    end
     
    trigger_after_update_cost : -- pareil pour insert, je suppose
    update current_value set update_date = date('now')
    C'est possible ça ? Ou bien faut il que je le fasse coté client ?

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 168
    Points
    168
    Par défaut
    Pour l'insertion, j'ai tenté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create trigger if not exists trigger_insert_cost after insert on costs
    begin
    	update costs set update_date = date('now') where id = new.id;
    end
    Qui semble ne pas marcher (voir pire... plantage sqlitespy !). Ca devrait etre bon ou pas ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 17
    Dernier message: 12/11/2008, 10h04
  2. Comment activer les trigger lors de l'utilisation d'un lot DTS ?
    Par buffquiche dans le forum Développement
    Réponses: 1
    Dernier message: 07/02/2008, 09h04
  3. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  4. Réponses: 5
    Dernier message: 11/06/2002, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo