Bonjour à tous,
voilà je suis débutant en SQL et surtout sur toute la partie trigger, procédures stockées...
Voila le code du trigger qui cause problème:
Voilà les erreurs que me renvoi MySQL:
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 DELIMITER !! CREATE TRIGGER insert_product BEFORE INSERT ON PRODUCT FOR EACH ROW BEGIN DECLARE row_count INTEGER; SELECT count(*) FROM PRODUCT INTO row_count; IF row_count = 0 THEN SET NEW.id_product = 1; ELSE SELECT count(table_name) FROM FREE_KEYS WHERE table_name = 'PRODUCT' INTO row_count; DECLARE key_ INTEGER; SELECT min(free_key) FROM FREE_KEYS WHERE table_name = 'PRODUCT' INTO key_; SET NEW.id_product = key_; DELETE FROM FREE_KEYS WHERE table_name = 'PRODUCT' AND free_key = key_; IF row_count = 0 THEN DECLARE max_id INTEGER; SELECT max(id_product) FROM PRODUCT INTO max_id; SET NEW.id_product = max_id + 1; ELSE DECLARE key_ INTEGER; SELECT min(free_key) FROM FREE_KEYS WHERE table_name = 'PRODUCT' INTO key_; SET NEW.id_product = key_; DELETE FROM FREE_KEYS WHERE table_name = 'PRODUCT' AND free_key = key_; END IF; END IF; END !!
ERROR 1064 (42000): 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 'DECLARE key_ INTEGER;
SELECT min(free_key) FROM FREE_KEYS WHERE table_name = 'PR' at line 13
Voilà je capte rien j'ai l'impression que la syntaxe est bonne
Merci de me filer un coup de pouce svp, je viens de commencer un projet et je bloque là dessus...
Partager