Page 1 sur 1

problemes de trigger !

Posté : 16 juin 2005, 09:38
par freebug
Bonjour,

je travail avec easyphp 1.8 (qui possede donc mysql 4.1.9) et je cherche a faire un trigger.
En fait je travail sur une base de données qui gere l'entrée et la sortie du stock de cartouche d'encre en fonction des différent service de la societe.

Pour cela je possede entre autre les tables:

-cartouche
reference varchar
libelle varchar
prix int
stock int
#num_imprimante varchar



-utiliser
id int
#num_imprimante varchar
#reference varchar
quantite int
date date
service varchar

dans la table utiliser j'insere au fur et à mesure que les gens viennent prendre des cartouches.

seulement je voudrais creer un trigger qui lorque que j'insere dans la table utiliser mette a jour automatiquement le champs stock dans la table
cartouche.

Pour cela j avais pensé au trigger suivant:

CREATE TRIGGER maj_stock
after insert on utiliser

begin
update cartouche
set stock = stock+'quantite'
where reference = 'reference'
end;

bon je pense que la la partie code de mon trigger ne doit pas etre bonne car il doit falloir utiliser les valeurs new. et old. .Mais mon pricipal probleme vient du fait que mysql ne semble pas reconnaitre la commande trigger de la ligne "CREATE TRIGGER maj_stock" car il me met bien le create en couleur violette mais pas le trigger.

Donc si quelqu'un pouvait m'aider on comprendre pourquoi et ou sont les erreurs dans mon trigger je l en remercirai bien.

Posté : 16 juin 2005, 09:48
par pascaltje
peut être que les trigger ne sont pas implémentés dans cette version de mysql?

moi c'est le REPLACE qui n'existe pas sous sybase :(

A+

Pascal

Posté : 16 juin 2005, 09:58
par ouckileou
vu dans le manuel :
The CREATE TRIGGER statement requires the SUPER privilege. It was added in MySQL 5.0.2.
et la syntaxe n'a pas l'air tiptop non plus :)

http://dev.mysql.com/doc/mysql/en/create-trigger.html

Posté : 16 juin 2005, 09:59
par freebug
Ha c est possible que se soit pas mis.

et si ca existe pas il y a un moyen de faire ce que je desire faire sans passer par un trigger ?

merci .

Posté : 16 juin 2005, 10:02
par freebug
donc avant la version 5.0.2 c est pas possible ?

Posté : 16 juin 2005, 10:02
par ouckileou
si tu développes une interface oui tout à fait

par exemple quand quelqu'un prend une cartouche toi tu fais un traitement en PHP par exemple qui va envoyer la ou les requêtes de mises à jour

Posté : 16 juin 2005, 10:03
par ouckileou
donc avant la version 5.0.2 c est pas possible ?
ben non :(

Posté : 16 juin 2005, 10:08
par freebug
ha oauis c est pas con (faut pas m en vouloir il est tot ce matin peu etre plus que d habitude :) )

en gros au moment ou j envois ma requete d insertion dans la table utiliser, je creer aussi une requete d update pour la table cartouche.

Posté : 16 juin 2005, 10:09
par ouckileou
tout àààà fait ! ;)

Posté : 16 juin 2005, 10:13
par freebug
ok merci beaucoup.

Tellement l habitude de bosser sous oracle ou les profs nous tanne pour faire des triggers que maintenant quand j ai pas de trigger suis perdu :'(.

comme quoi les solutions les plus simples sont pas forcement celles qu on voit en premier :D .

Posté : 16 juin 2005, 10:15
par ouckileou
tu t'y feras vite à te passer des triggers avec MySQL :)

problème résolu ? si oui un petit clic sur le bouton éponyme ?

Posté : 16 juin 2005, 10:34
par freebug
Oui merci , probleme resolu tout es R.A.S, et je met le resolu.

(les profs vont criser quand il vont voir cette update sans trigger ^^)