[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. 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.
    2. 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. 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. 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