Bonjour et meilleurs vœux en cette nouvelle année

J'ai récupéré un dump d'une base mysql (5.0.70) et à côté de ça, un fichier avec une liste de trigger et de fonctions.

La base est bien importée mais impossible d'ajouter les triggers et fonctions.
Ne connaissant pas trop ces deux animaux là, et l'erreur renvoyée par mysql ne m'aidant absolument pas (#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 '' at line 4), je m'en remets à vous.

Dans chaque cas, la table et les champs concernés existent bien.
Quelqu'un pourrait-il me dire ce qui cloche svp ?

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
CREATE TRIGGER contacts_cstm_onInsert BEFORE INSERT ON contacts_cstm
FOR EACH ROW 
BEGIN
IF (NEW.password_c ="") OR (NEW.password_c IS NULL) THEN 
  SET NEW.password_c = SUBSTRING(UUID(), 1, 6);
END IF;
END;
 
CREATE TRIGGER contacts_cstm_onUpdate BEFORE UPDATE ON contacts_cstm
FOR EACH ROW 
BEGIN
IF (NEW.password_c ="") OR (NEW.password_c IS NULL) THEN 
  SET NEW.password_c = SUBSTRING(UUID(), 1, 6);
END IF;
END;
 
CREATE TRIGGER factures_onUpdate BEFORE UPDATE ON factures
FOR EACH ROW
BEGIN
  SET NEW.locked=(IF(NEW.statut>1,1,0));
END;
 
CREATE TRIGGER opportunities_onUpdate BEFORE UPDATE ON opportunities
FOR EACH ROW
BEGIN
  SET NEW.name=REPLACE(NEW.name," ","");
END;
 
CREATE TRIGGER opportunities_onInsert BEFORE INSERT ON opportunities
FOR EACH ROW
BEGIN
  SET NEW.name=REPLACE(NEW.name," ","");
END;
 
CREATE FUNCTION FACTURE_SUMALLMONTANT (contactid CHAR(36)) 
RETURNS DOUBLE
DETERMINISTIC
BEGIN
DECLARE x DOUBLE;
SELECT SUM(IF(fl1.type_ligne=0,fl1.prix_unitaire*fl1.quantite*(1+fl1.tva),0)) INTO x
FROM factures fac 
LEFT JOIN facture_ligne fl1 ON fl1.facture_id=fac.id AND fl1.deleted=0 AND fac.statut not in (1,9)
WHERE fac.deleted=0 AND fac.destinataire=contactid;
IF x IS NULL THEN  SELECT 0 INTO x;
END IF ;
RETURN x;
END;
 
CREATE FUNCTION REGLEMENT_SUMALLMONTANT (contactid CHAR(36)) 
RETURNS DOUBLE
DETERMINISTIC
BEGIN
DECLARE x DOUBLE;
SELECT SUM(montant) INTO x
FROM reglements reg,contacts_reglements conreg
WHERE reg.id=conreg.reglement_id 
 AND reg.deleted=0 
 AND conreg.deleted=0
 AND reg.statut  IN ("BANK_DEPOSIT","CHECK_OK","DRAFT")
 AND conreg.contact_id=contactid;
 
IF x IS NULL THEN  SELECT 0 INTO x;
END IF ;
RETURN x;
END;
 
CREATE FUNCTION BALANCE (contactid CHAR(36)) 
RETURNS DOUBLE
DETERMINISTIC
BEGIN
DECLARE x DOUBLE;
SELECT FACTURE_SUMALLMONTANT(contactid)-REGLEMENT_SUMALLMONTANT(contactid) INTO x;
IF x IS NULL THEN  SELECT 0 INTO x;
END IF ;
RETURN x;
END;
 
CREATE FUNCTION BALANCE_CONTENTIEUX (contactid CHAR(36)) 
RETURNS DOUBLE
DETERMINISTIC
BEGIN
DECLARE x DOUBLE;
SELECT BALANCE(contactid)-SUM(IF(type_ligne=0,prix_unitaire*quantite*(1+tva),0)) INTO x
FROM factures fac, facture_ligne fl 
WHERE fl.facture_id=fac.id 
AND fac.destinataire=contactid
AND fl.deleted=0 AND fac.deleted=0
AND MONTH(fac.date_facture)=MONTH(CURDATE())
AND YEAR(fac.date_facture)=YEAR(CURDATE());
IF x IS NULL THEN  SELECT 0 INTO x;
END IF ;
RETURN x;
END;
Merci.