Bonjour,

Je débute dans les TRIGGERS et j'ai voulu en concevoir un qui génère un login en utilisant différents champs d'une table (ici: nomCli, idCli, villeCli).
La récupération des champs nomCli et villeCli ne pose pas de problème.
Le problème vient de la récupération de l'idCli, new.idCli est toujours équivalent à 0 lors de l'exécution du TRIGGER, et pourtant dans la table après l'insertion, le champs idCli est bien égale à une valeur non nulle...

Je pense que le problème vient de mon INSERT INTO dans lequel je ne fais pas figurer l'idCli car celui-ci est en auto_increment:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
INSERT INTO t_client VALUES ('','nom_du_client',etc...);
Ca doit être car dans la commande d'insertion le champs idCli est NULL..

Dans le pire des cas j'enleverai l'auto_increment, mais ça m'arrangerait de le garder.

Voici le trigger:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
CREATE TRIGGER setLoginCli
	BEFORE INSERT ON t_client
	FOR EACH ROW 
		SET new.loginCli=(SELECT CONCAT(SUBSTR(new.nomCli,1,3),SUBSTR(new.villeCli,1,3),new.idCli));
Voici la structure de la table sur laquelle s'effectue le trigger:
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
 
CREATE TABLE t_client (
	-- Clé primaire
	idCli INT(4) NOT NULL AUTO_INCREMENT,
	-- Champs
	nomCli VARCHAR(50) NOT NULL,
	loginCli VARCHAR(8) NULL,
	passCli LONGTEXT NOT NULL,
	rueCli VARCHAR(100) NOT NULL,
	villeCli VARCHAR(50) NOT NULL,
	cpCli VARCHAR(5) NOT NULL,
	telCli VARCHAR(10) NULL,
	mailCli VARCHAR(100) NULL,
	-- Clé étrangère
	statutCli INT(3) NOT NULL,
	-- Contraintes
	CONSTRAINT pk_client PRIMARY KEY (idCli),
	CONSTRAINT fk_client FOREIGN KEY (statutCli) REFERENCES t_statutclient(idStatut)
);
Merci d'avance.