Bonjour,

J'ai fais un trigger qui génere une clé primaire automatiquement pour une table :

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
 
delimiter //
DROP TRIGGER tTypeInter//
CREATE TRIGGER tTypeInter BEFORE INSERT ON type_interval
FOR EACH ROW 
BEGIN
 
DECLARE Temp CHAR(9);
	UPDATE seqtypeinter SET id=LAST_INSERT_ID(id+1);
	select CAST(id AS CHAR) into temp from seqtypeinter;
 
	SET Temp = LPAD(Temp,9,'0');
	SET NEW.IdType= 'T' || Temp;
	select * from NEW.IdType;
END//
delimiter ;
Quand je crée le trigger, il n'y a pas d'erreur. Mais quand je veux faire un insert dans la table, il me dit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ERROR 1364 (HY000): Field 'IdType' doesn't have a default value
Voila ma table :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
create table TYPE_INTERVAL (
     IdType varchar(10) not null,
     Duree numeric(1) not null,
     constraint ID_TYPE_INTERVAL primary key (IdType));
Et mon Insert :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
INSERT INTO type_interval(Duree) VALUE(5)
Je ne trouve pas comment ça ce fait, pouvez vous m'aider svp ?

Merci