Bonjour,
N'ayant pas trouver de solution sur le net je viens vous voir pour répondre à une de mes "petites" problèmatiques.
Dans une de mes tables, avant chaque insertion je regarde si le fournisseur a le droit de passer une commande.
Lorsqu'il a le droit, la ligne rentre bien dans la base, mais lorsque ce n'est pas le cas, elle ne rentre pas
Voici le code :
Code :
- DELIMITER $$
- DROP TRIGGER reporting.insert_tblorders $$
- CREATE TRIGGER reporting.insert_tblorders BEFORE INSERT ON TBLORDERS
- FOR EACH ROW
- BEGIN
- DECLARE txsoc VARCHAR(45);
- DECLARE txfournisseur VARCHAR(45);
- IF NEW.PARENTORDERID IS NOT NULL THEN
- SELECT fb.Taux_Soc,fb.Taux_fournisseurINTO txsoc,txfournisseur FROM socfournisseur fb,fournisseur b,fonds f WHERE b.Id_fournisseur=fb.Id_fournisseur AND NEW.FOURNISSEURID=b.Nom_fournisseurAND f.Id_Fond=fb.Id_Fond AND NEW.ACCOUNTID=f.Nom_Fond;
- IF (txsoc IS NOT NULL AND txfournisseur IS NOT NULL )THEN
- SET NEW.SOC_COM_BASE = txsoc;
- SET NEW.FOURNISSEUR_COM_BASE= txfournisseur;
- ELSE
- SET NEW.SOC_COM_BASE = 'Interdit';
- SET NEW.FOURNISSEUR_COM_BASE= 'Interdit';
- END IF;
- END IF;
- END $$
- DELIMITER ;
|
Donc pour resumer, mysql me prends bien la première condition : si la requête renvoie quelques chose il va bien me rentrer la ligne, par contre si la requête ne renvoie rien, la ligne ne rentre pas dans la base
Auriez-vous une idée?
Merci d'avance
Message édité par spish le 29-11-2007 à 08:09:49