Bonjour à tous,

Je suis en train de faire mon premier trigger et j'aurais besoin d'un coup de main.
Le but de ce trigger et de contrôler avant insertion dans la table si un host existe (`depuis_la_station`) dans la table. Si cette host existe il faut mettre les deux autres champs à jours sinon rajouter la ligne entière.

Voilà ce que j'ai commencé à faire, mais je pense mélanger un peu les choses, surtout avec mon histoire de SELECT.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
DELIMITER $$
 
DROP TRIGGER IF EXISTS `ocsweb`.`detectINSERT`$$
 
CREATE TRIGGER `ocsweb`.`detectINSERT` BEFORE INSERT on `ocsweb`.`BGInfoTable`
FOR EACH ROW 
BEGIN
 
DECLARE host_ins tinytext;
DECLARE host_exist tinytext;
 
 
SET host_ins = new.depuis_la_station;
 
SET host_exist = SELECT `ocsweb`.`BGInfoTable`.`depuis_la_station`AS Stations FROM `ocsweb`.`BGInfoTable` WHERE `ocsweb`.`BGInfoTable`.`depuis_la_station`= host_ins;
 
 
	IF host_ins=host_exist THEN 
		UPDATE `ocsweb`.`BGInfoTable` SET `Time_Stamp`=new.Time_Stamp, `User_Name`=new.User_Name WHERE `depuis_la_station`=host_exist;
	ELSE
		INSERT INTO `ocsweb`.`BGInfoTable`(`Time_Stamp`,`depuis_la_station`,`User_Name`) VALUES (new.Time_Stamp,new.depuis_la_station,new.User_Name);
 
 
END$$
DELIMITER ;