Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/10/2006, 15h12   #1
Membre du Club
 
Inscription : mai 2006
Messages : 176
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 176
Points : 44
Points : 44
Par défaut Trigger d'insertion dans une nouvelle table

Bonjour, j'essaie par tout les moyens de réaliser un trigger, seulement, il me met que celui-ci contient une erreur, et j'ai eau cherché, je n'arrive pas à voir ou l'erreur est !

Voici mon trigger :
CREATE TRIGGER `ins_B` AFTER INSERT ON `A`
FOR EACH ROW
BEGIN
DECLARE db_name VARCHAR(255);
DECLARE name VARCHAR(255);

SET name = SELECT A.name FROM A, B WHERE ( inserted.project_id = A.id);
SET db_name = REPLACE(name||'_'||inserted.version,'.','_');
INSERT INTO `C` (`version_id`,`database`) VALUES (inserted.version,db_name);
END;

Donc c'est un trigger, qui une fois un enregistrement réalisé dans une table B, récupère des informations de cette table (l'id), pour récupérer un nom dans la table A, et ensuite fais une concaténation et un remplacement entre le nom trouver et la nouvelle version.

Voilà si quelqu'un pouvait m'aider svp, merci d'avance !
Marty000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 16h52   #2
Membre du Club
 
Inscription : mai 2006
Messages : 176
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 176
Points : 44
Points : 44
le SGBD, c'est MySQL, pour tout dire pour le moment j'utilise WAMP en local.

J'ai réussi ma requete à quelque chose près !
Voilà je réalise une concaténation, à la place du replace, seulement, j'ai beau utiliser || ou + ou & pour concaténer à chaque fois le résultat n'est pas le bon.

Par exemple au lieu d'obtenir pour ("test"+"4"), il me retourne "4", et avec & j'obtiens "0", et ||me génère carrément une erreur...

Donc voilà, exactement ou j'en suis.

Et encore merci.
Marty000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 17h24   #3
Membre du Club
 
Inscription : mai 2006
Messages : 176
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 176
Points : 44
Points : 44
Désolé d'avoir mal placé le sujet, toujours est il que les fonctions pour :

Concaténation : concat('a','b');

Remplacement : replace(abc,'ab','b');

Voilà, et mercie encore !
Marty000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h44.


 
 
 
 
Partenaires

Hébergement Web