[mysql]trigger et procédure stockée

Bonjour,

J'ai un soucis, chui en stage dans une entreprise et j'utilise une config mysql.Je vous explique mon pb :
imaginons j'ai deux tables : client et majclient ( je sais ici ça n'a pas d'intéret mais c'est un exemple)
J'aurais voulu savoir s'il est possible avec un trigger et surment une procédure stockée de mettre à jour la table majclient pour chaque opértation sur la table client ( que ce soit un update, un delet ou un insert)?

y a-t-il des gens qui ont déjà fait ça ici? histoire de savoir si je me lance dans un truc impossible ou pas

à moins que vous ne voyez d'autre(s) solution(s).

Soyez sympa avec moi c'est pas mon domaine de prédilection le dev ...

Merci d'avance , Iulius
Configuration: Windows XP
Firefox 2.0

7 réponses

  1. Yop... un peu en retard je pense mais ça marche
    www.google.ch.. va t'aider
    1. Lut les gens d'après ce que j'ai pu lire les triggers sur mysql ne sont pas fiable, ils sont mis sur la dernière version mais ne marche pas correctement essaye plutot un cron si tu es sur un serv linux qui execute une page php
      1. Si c'est pas trop tard...

        au lieu de :

        select count (nom_client) from client into err_client;

        mettre:

        select count (nom_client) into err_client from client;
        1. un conseil déclare tes variables en varchar pas en char çà évite les surprises
          Je faisais çà sous oracle donc çà doit être la même chose sous mysql ou presque ^^
          et en effet tu n as pas déclarer ta variable.
          1. a l'aide je ve spécifié une erreur dans un trigger sous mysql mais ji arrive po voici le trigger

            delimiter /

            create trigger trigger_1 before insert on client
            for each row
            begin
            declare err_client char;
            select count (nom_client) from client into err_client;
            if nom_client = 'alaoui' then
            insert into error_table set msg = 'erreur';
            end if
            end
            /
            delimiter;
            aidé moi svp
            1. Quel est le message d'erreur?
            2. Il se peut que ta requête COUNT retourne un nombre à 2 chiffres... ce qui pose problème à stocker dans un 'char'

              Pourquoi ne pas le changer pour INTEGER?
            3. Ah je viens de réaliser aussi que : " if nom_client = 'alaoui' then " contient une variable non déclarée : nom_client.

              Essaye de la changer par NEW.nom_client si "nom_client" est un champ dans la table client.