Rechercher : dans
Par :

[mysql]trigger et procédure stockée

Dernière réponse le 22 aoû 2008 à 02:56:43 iulius, le 27 mar 2007 à 12:34:35 
 Signaler ce message aux modérateurs

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

1

iulius, le 27 mar 2007 à 14:50:00

Non vraiment personne pour m'aider?

Répondre à iulius

2

iulius, le 28 mar 2007 à 10:06:03

Vraiment personne s'y connait ici en mysql ?

Répondre à iulius

3

fidji-florian, le 16 oct 2007 à 17:25:13

Yop... un peu en retard je pense mais ça marche
www.google.ch.. va t'aider

Répondre à fidji-florian

4

sawsaw, le 19 mar 2008 à 16:58:39

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

Répondre à sawsaw

5

ai, le 19 mar 2008 à 18:32:37

Quel est le message d'erreur?

Répondre à ai

6

ai, le 19 mar 2008 à 18:47:47
  • +1

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?

Répondre à ai

7

ai, le 19 mar 2008 à 18:50:06

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.

Répondre à ai

8

Hicks59, le 14 jun 2008 à 01:47:29

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.

Répondre à Hicks59

9

camou, le 25 jui 2008 à 15:21:31

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;

Répondre à camou

10

 Hicks59, le 22 aoû 2008 à 02:56:43

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

Répondre à Hicks59