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

SQL Procédural MySQL Discussion :

Trigger Mise a jour de colonne.


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 206
    Par défaut Trigger Mise a jour de colonne.
    Bonjour,

    Une petite explication sur mon projet.
    J'ai une application cliente (avec une db Mysql) et une sur téléphone portable (avec la même base de données).
    Afin de synchroniser les données entre mes 2 bases, j'ai créé une colonne date "date_sync". Pour m'eviter d'oublier dans le code de mes applications de mettre a jour cette date. J'aurai souhaité créer des triggers en ajout et modification.
    En ajout puisque (si j'ai bien compris), on ne peut pas créer de valeur par défaut cur_date() sur une colonne date.
    Donc j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create trigger trg_companies_date_sync AFTER INSERT ON companies
    for each row
    begin
    set NEW.date_sync = curdate() where NEW.id = NEW.id;
    end
    Et j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Updating od NEW row is not allowed in after trigger
    J'ai une erreur similaire pour le trigger sur un after update.
    Qu'est ce que je fais de pas bien ?
    Qu'elle(s) solution(s) existe(nt) ?
    en vous remerciant.
    Bonne journée.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 206
    Par défaut
    J'ai trouvé mon erreur.
    voici ce qu'il faut faire :
    créer une colonne date avec la valeur null autorisé.
    et créer ses 2 triggers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    delimiter //
    create trigger trg_companies_insert_date_sync before insert on companies for each row
    begin
    set new.date_sync = now();
    end //
     
    delimiter //
    create trigger trg_companies_update_date_sync before update on companies for each row
    begin
    set new.date_sync = now();
    end //
    Et le tour est joué.
    Merci de votre attention.
    Bonne journée.

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

Discussions similaires

  1. Trigger mise a jour base des données
    Par alizerhouni dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 12/07/2010, 10h08
  2. [Trigger] mise a jour d'un champ lors de l'uptate d'un autre
    Par johnson95 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/10/2009, 17h14
  3. Mise a jour des colonnes
    Par abbd dans le forum Windows Forms
    Réponses: 12
    Dernier message: 06/02/2008, 16h29
  4. mise a jour de colonnes entre deux fichiers
    Par xavier le breuil dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/01/2008, 15h48
  5. TRIGGER - mise a jour champ de la table declencheur
    Par jane_ng dans le forum Oracle
    Réponses: 1
    Dernier message: 17/06/2006, 19h12

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