Problème avec trigger MySQL
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:
Code:
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 !! |
Voilà les erreurs que me renvoi MySQL:
Citation:
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 :aie:
Merci de me filer un coup de pouce svp, je viens de commencer un projet et je bloque là dessus... :?