Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 22/10/2007, 20h07   #1
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut trigger et insertion

j'ai fais un trigger pour generer automatiquement une clé lors de l'insertion d'un nouveau enregistrement.

le voici:

Code :
1
2
3
4
5
6
CREATE TRIGGER mon_trigger FOR ma_table
before INSERT ON ma_table
AS
begin
  new.id = (SELECT count(*) +1 FROM ma_table);
end;
ça ne fonctionne pas. Est ce que quelqu'un peut m'aider à le corriger?

merci.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 20h28   #2
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 61
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 61
Points : 10
Points : 10
http://kloo.developpez.com/interbase/IB6compteur/
vedge2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 20h57   #3
Expert Confirmé
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Attention à ce genre de code pour obtenir un identifiant !!!!!!!

Je crois largement préférable d'utiliser les générateurs pour ce genre de tache !

Le tout est décrit dans la


En effet, si le tuple ayant par exemple l'id 1 est supprimé de ta table qui contient les id 1 et 2, l'id que tu obtiendras à la prochaine insertion sera ... 2 (count(*) = 1 )
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 10h45   #4
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut trigger et insertion

j'ai fais comme vous m'avez dis,j'obtiens:

erreur : generator mon_generateur is not defined !!! quand je tente

d'enregistrer le trigger.

mon_generateur existe belle et bien. je ne comprend pas ce phenomène.

j'utilise IBAccess et FB 1.5.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 11h44   #5
Expert Confirmé
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Poste les 2 codes (trigger + générateur)...
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 12h10   #6
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut trigger et insertion

J'ai vu le phenomène. IBAccess ajoute des double côtes aux noms de tout

objets que je crée. Et pourtant je ne lui ai pas dit de faire ça.

qui peut me dire pourquoi IBAccess fait ça? est ce qu'il y a un moyen de

l'empêcher d'ajouter ces doubles côtes? je ne les aime pas du tout.
Moine 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 06h58.


 
 
 
 
Partenaires

Hébergement Web