Trigger et auto_increment
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:
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:
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:
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.