Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1240 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySql] Trigger structure conditionnelle [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySql] Trigger structure conditionnelle [Résolu]

n°1650356
spish
Posté le 28-11-2007 à 16:17:22  profilanswer
 

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 :
  1. DELIMITER $$
  2. DROP TRIGGER reporting.insert_tblorders $$
  3. CREATE TRIGGER reporting.insert_tblorders BEFORE INSERT ON TBLORDERS
  4. FOR EACH ROW
  5. BEGIN
  6.   DECLARE txsoc VARCHAR(45);
  7.   DECLARE txfournisseur VARCHAR(45);
  8.   IF NEW.PARENTORDERID IS NOT NULL THEN
  9.     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;
  10.     IF (txsoc IS NOT NULL AND txfournisseur IS NOT NULL )THEN
  11.       SET NEW.SOC_COM_BASE = txsoc;
  12.       SET NEW.FOURNISSEUR_COM_BASE= txfournisseur;
  13.     ELSE
  14.       SET NEW.SOC_COM_BASE = 'Interdit';
  15.       SET NEW.FOURNISSEUR_COM_BASE= 'Interdit';
  16.     END IF;
  17.   END IF;
  18. END $$
  19. 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
mood
Publicité
Posté le 28-11-2007 à 16:17:22  profilanswer
 

n°1650637
spish
Posté le 29-11-2007 à 08:09:32  profilanswer
 

Re,
 
Après une nuit à bidouiller j'ai trouvé :)
 
pour ceux que cela interresse, voici la solution :
 
Il faut utiliser les handler :
 
DECLARE CONTINUE HANDLER FOR NOT FOUND SET txsoc := 'Inconnu',SET.........;
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySql] Trigger structure conditionnelle [Résolu]

 

Sujets relatifs
Comparatif Mysql / postgre[php/mysql] Ajout d'un prix variable dans le panier
[RESOLU]Enregistrement classe dans fichier[Résolu]Javascript, div, visibility et position
[Résolu] chmod() et les variables $_GET['var'][Résolu] un script ne respercte pas <form action="">
[Résolu] ][Java] Conversion d'une chaîne HTML en Unicodesite marchand : achat de structure?
langue arabe et mysqlFormulaire/méthode GET et action [résolu]
Plus de sujets relatifs à : [MySql] Trigger structure conditionnelle [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR