Bonjour à tous,

je voudrais insérer automatiquement une valeur auto_incremente dans une table qui est vide au départ et qui sera déclencheé après insertion d'une valeur dans une autre colonne.

ma tables est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE CONTROLES(
controle_id INTEGER AUTO_INCREMENT NOT NULL,
reference_id INTEGER NULL,
controleur_nom VARCHAR(20) NULL,
quantite_controlee INTEGER NOT NULL,
date_controle VARCHAR(20) NULL,
observation NVARCHAR(255) NULL,
CONSTRAINT CONTROLES_controle_id_pk PRIMARY KEY (controle_id),
CONSTRAINT CONTROLES_reference_id_fk FOREIGN KEY (reference_id) REFERENCES ARTICLE_REFERENCES (reference_id),
CHECK (reference_id >= 0)
);



mon trigger est :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
DELIMITER $$
 
CREATE OR REPLACE TRIGGER INCR_CONTROLE 
BEFORE INSERT ON CONTROLES  
FOR EACH ROW 
BEGIN 
	SELECT NVL(MAX(reference_id),0)+ 1 
	INTO :NEW.reference_id 
	FROM CONTROLES WHERE controle_id:NEW.controle_id; 
END $$
 
DELIMITER ;
MySQL a répondu:

#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 'TRIGGER INCR_CONTROLE
BEFORE INSERT ON CONTROLES
FOR EACH ROW
BEGIN
SE' at line 1


merci de votre aide