Trigger MySQL

Résolu/Fermé
Artamos Messages postés 165 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 28 mars 2011 - 11 févr. 2010 à 12:34
Artamos Messages postés 165 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 28 mars 2011 - 23 févr. 2010 à 09:03
Bonjour,

je fais un trigger sous MySQL pour logger la modifications de valeur d'une donnee
la structure utiliser est :
Deposit
(ID int AUTO_INCREMENT,
Amount Double default '0',
Primary Key (ID))

Deposit_Historic
(ID int NOT NULL AUTO_INCREMENT,
DepositID int,
AmountModify Double NOT NULL,
ModifyDate Datetime NOT NULL,
Primary Key (ID),
Foreign Key (DepositID) references DEPOSIT(ID))


Le triggers que j'ai est :
CREATE TRIGGER ModifyAmountValue AFTER UPDATE ON Deposit
BEGIN
	DECLARE @modifyValue AS Double
	
	SET @modifyValue = old.amount - new.amount;

	INSERT INTO DEPOSIT_HISTORIC
	SET
		DepositID = ID,
		AmountModify = @modifyValue,
		ModifyDate = getDate();
END


Le requeteur MySQL me sort l'erreur suivante :
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BEGIN
    DECLARE @modifyValue AS Double
    
    SET @modifyValue = old.amount - new.' at line 2 


la je bloque depuis 2h malgres google et autre manuel ...

1 réponse

Artamos Messages postés 165 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 28 mars 2011 16
23 févr. 2010 à 09:03
apres 2 semaines de vacances, j'ai trouver les raisons des problemes :

1- il faut redefinir les delimiteurs car PHPMyAdmin prend mal les ";" donc mettre dans le code
DELIMITER //
CREATE [...]
END //
DELIMITER ;


ceci resoue deja un probleme de PHPMyAdmin, mais le vrai probleme est :

2- pour creer un Trigger il faut le privilege SUPER, que mon hebergeur web/BDD ne me fournie pas. Donc je dois negocier avec lui.

voila voila
Je met le poste en resolue pour si d'autre ont des problemes.
Artamos
1