j'ai deux tables : une d'inventaire l'autre historique des modifs

j'aimerais que toutes modif soit reportée ds la table _hist a l'aide de trigger;

les tables sont acceptées mais les triggers refusés.

j'ai remis le code complet, mais l'erreur de syntaxe doit etre sur le trigger (qui a une seul ligne) en gras

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
62
63
64
65
66
67
 
CREATE TABLE `mat_pc` (
  `ID` int(11) NOT NULL default '0',
  `SN` varchar(20) NOT NULL default '',
  `GIEI` varchar(20) NOT NULL default '',
  `ComputerName` varchar(20) default NULL,
  `user` varchar(25) default NULL,
  `CSrv` varchar(6) NOT NULL default '',
  `Bureau` varchar(10) default NULL,
  `MM` varchar(50) default NULL,
  `Proc` varchar(10) default NULL,
  `MHz` decimal(10,0) default NULL,
  `Ram` decimal(10,0) default NULL,
  `HD` decimal(10,0) default NULL,
  `MMecran` varchar(50) default NULL,
  `Taille` tinyint(4) default NULL,
  `SNecran` varchar(20) default NULL,
  `Matrice` varchar(25) default NULL,
  `Statut` char(2) NOT NULL default '',
  `Rem` text,
  `modifedby` varchar(25) NOT NULL default '',
  PRIMARY KEY  (`ID`)
)
 
CREATE TABLE `mat_pc_hist` (
  `ID` int(11) NOT NULL default '0',
  `SN` varchar(20) NOT NULL default '',
  `GIEI` varchar(20) NOT NULL default '',
  `ComputerName` varchar(20) default NULL,
  `user` varchar(25) default NULL,
  `CSrv` varchar(6) NOT NULL default '',
  `Bureau` varchar(10) default NULL,
  `MM` varchar(50) default NULL,
  `Proc` varchar(10) default NULL,
  `MHz` decimal(10,0) default NULL,
  `Ram` decimal(10,0) default NULL,
  `HD` decimal(10,0) default NULL,
  `MMecran` varchar(50) default NULL,
  `Taille` tinyint(4) default NULL,
  `SNecran` varchar(20) default NULL,
  `Matrice` varchar(25) default NULL,
  `Statut` char(2) NOT NULL default '',
  `Rem` text,
  `modifedby` varchar(25) NOT NULL default '',
  `datemodif` date NOT NULL default '0000-00-00'
) 
 
CREATE TRIGGER mat_pc_hist_tri AFTER INSERT
    ON mat_pc FOR EACH ROW 
BEGIN [b]
insert into mat_pc_hist VALUES 
new.ID,new.SN,new.GIEI,new.ComputerName,new.user, new.CSrv,new.Bureau,new.MM,new.Proc,new.Mhz,new.Ram,new.HD,new.MMecran,new.Taille,new.SNecran,new.Matrice,new.Statut,new.Rem,new.modifedby,DATE() ;[/b]
END
 
CREATE TRIGGER mat_pc_hist_tru AFTER UPDATE
    ON mat_pc FOR EACH ROW 
BEGIN 
insert into mat_pc_hist(ID,SN,GIEI,ComputerName,user,CSrv,Bureau,MM,Proc,Mhz,Ram,HD,MMecran,Taille,SNecran,Matrice,Statut,Rem,modifedby,datemodif )
	VALUES(new.ID,new.SN,new.GIEI,new.ComputerName,new.user, new.CSrv,new.Bureau,new.MM,new.Proc,new.Mhz,new.Ram,new.HD,new.MMecran,new.Taille,new.SNecran,new.Matrice,new.Statut,new.Rem,new.modifedby,DATE() );
END
 
CREATE TRIGGER mat_pc_hist_trd AFTER DELETE
    ON mat_pc FOR EACH ROW 
BEGIN 
insert into mat_pc_hist(ID,SN,GIEI,ComputerName,user,CSrv,Bureau,MM,Proc,Mhz,Ram,HD,MMecran,Taille,SNecran,Matrice,Statut,Rem,modifedby,datemodif )
	VALUES(new.ID,new.SN,new.GIEI,new.ComputerName,new.user, new.CSrv,new.Bureau,new.MM,new.Proc,new.Mhz,new.Ram,new.HD,new.MMecran,new.Taille,new.SNecran,new.Matrice,new.Statut,new.Rem,new.modifedby,DATE() );
END
j'ai une error 1064 qui serait liée au ansi_quote... d'après mister