Bonjour,

Je poste ce message en espérant que quelqu'un est une solution à mon problème après avoir chercher avec d'autres personnes sur le chat.

Je souhaite faire en mysql 5.5 un trigger qui à chaque insertion dans une table "import", met à jours une table "session" et une table "reporting".
Apres avoir tenté tout un tas de syntaxe différente(les points virgules, les delimiter,...) Rien ne marche. Avec une requete tout va bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
CREATE TRIGGER `maj_sessions` 
AFTER INSERT ON `import_formations_realisees` 
FOR EACH ROW 
REPLACE INTO sessions(CODESESSION, CODEARTICLE, LIBELLESESSION, DATEDEBUT, DATEFIN, VOLHEURES) 
VALUES (new.CODE_ACTI,new.CODE_ART,new.LIB_LONG_FRANCAIS_ART,new.DATE_DEBUT_ACTI,new.DATE_FIN_ACTI,new.SOMME_DUREE_COMP)
avec deux ça ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
CREATE TRIGGER `maj_sessions` 
AFTER INSERT ON `import_formations_realisees` 
FOR EACH ROW 
REPLACE INTO sessions(CODESESSION, CODEARTICLE, LIBELLESESSION, DATEDEBUT, DATEFIN, VOLHEURES) 
VALUES (new.CODE_ACTI,new.CODE_ART,new.LIB_LONG_FRANCAIS_ART,new.DATE_DEBUT_ACTI,new.DATE_FIN_ACTI,new.SOMME_DUREE_COMP)
insert into reporting(CODEIDENT,CODESESSION)
values(new.IDENT,new.CODE_ACTI);
merci d'avance pour votre aide

Cordialement
mon script sql
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
CREATE TABLE IF NOT EXISTS `import_formations_realisees` (
  `LIB_FRANCAIS_CDR` varchar(50) DEFAULT NULL,
  `CODE_ART` varchar(7) DEFAULT NULL,
  `LIB_LONG_FRANCAIS_ART` varchar(250) DEFAULT NULL,
  `CODE_ACTI` varchar(50) DEFAULT NULL,
  `DATE_DEBUT_ACTI` date DEFAULT NULL,
  `DATE_FIN_ACTI` date DEFAULT NULL,
  `NB_MAX_D_INSCRIPTIONS` int(11) DEFAULT NULL,
  `NB_MIN_D_INSCRIPTIONS` int(11) DEFAULT NULL,
  `CADRE_DU_DIF` varchar(50) DEFAULT NULL,
  `LIB_FRANCAIS_MODE_PREST_ACTI` varchar(250) DEFAULT NULL,
  `LIB_FRANCAIS_STATUT_INSCR_EN_COURS` varchar(250) DEFAULT NULL,
  `LIB_FRANCAIS_ASSIDUITE` varchar(250) DEFAULT NULL,
  `FORME` varchar(250) DEFAULT NULL,
  `IDENT` varchar(8) DEFAULT NULL,
  `NOM_STAGIAIRE` varchar(50) DEFAULT NULL,
  `PRENOM_STAGIAIRE` varchar(50) DEFAULT NULL,
  `SOMME_DUREE_COMP` decimal(6,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
CREATE TABLE IF NOT EXISTS `personnes` (
  `CODEIDENT` varchar(8) NOT NULL,
  `NOMPERSONNNE` varchar(50) DEFAULT NULL,
  `PRENOMPERSONNE` varchar(50) DEFAULT NULL,
  `EDGPERSONNE` varchar(8) DEFAULT NULL,
  `CDRPERSONNE` varchar(8) DEFAULT NULL,
  `MANAGER_O_N_` char(1) DEFAULT NULL,
  `CDIACTIFPERSONNE` varchar(8) DEFAULT NULL,
  `CDDACTIFPERSONNE` varchar(8) DEFAULT NULL,
  `UTILISEPERSONNE` varchar(8) DEFAULT NULL,
  `FATPERSONNE` varchar(8) DEFAULT NULL,
  `CODE_MAN` varchar(8) DEFAULT NULL,
  `EQUIPEPERSONNE` varchar(50) NOT NULL,
  `DEPPERSONNE` varchar(10) NOT NULL,
  `CODEMETIER` varchar(50) NOT NULL,
  `SIRET` varchar(15) NOT NULL,
  `MAILPERSONNE` varchar(250) DEFAULT NULL,
  `RHPERSONNE` varchar(50) NOT NULL,
  PRIMARY KEY (`CODEIDENT`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
CREATE TABLE IF NOT EXISTS `reporting` (
  `CODEIDENT` varchar(8) NOT NULL,
  `CODESESSION` varchar(50) NOT NULL,
  PRIMARY KEY (`CODEIDENT`,`CODESESSION`),
  KEY `FK_REPORTING2` (`CODESESSION`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
CREATE TABLE IF NOT EXISTS `sessions` (
  `CODESESSION` varchar(50) NOT NULL,
  `CODEARTICLE` varchar(7) NOT NULL,
  `LIBELLESESSION` varchar(250) DEFAULT NULL,
  `DATEDEBUT` varchar(10) DEFAULT NULL,
  `DATEFIN` varchar(10) DEFAULT NULL,
  `VOLHEURES` decimal(6,2) DEFAULT NULL,
  PRIMARY KEY (`CODESESSION`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
ALTER TABLE `reporting`
  ADD CONSTRAINT `FK_REPORTING` FOREIGN KEY (`CODEIDENT`) REFERENCES `personnes` (`CODEIDENT`),
  ADD CONSTRAINT `FK_REPORTING2` FOREIGN KEY (`CODESESSION`) REFERENCES `sessions` (`CODESESSION`);