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 01/06/2011, 10h40   #1
Membre Expert
 
Homme AbdelHakim Kellouche
Inscription : mai 2008
Messages : 1 977
Détails du profil
Informations personnelles :
Nom : Homme AbdelHakim Kellouche
Localisation : Algérie

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : mai 2008
Messages : 1 977
Points : 2 126
Points : 2 126
Envoyer un message via MSN à Just-Soft Envoyer un message via Skype™ à Just-Soft
Par défaut Update d'un champ AutoIncrement

Bonjour !
comment faire un update sur un champ autoincrement sachant que le déclencheur est positionné sur udpate et insert.

j'ai essayé ça mais j'ai eu une erreur de syntaxe car le sgbd est incapable de comprendre ce que je veux faire

Code :
UPDATE TB_SR_SERVICE SET code_interne
avec code_interne champs autoincrement que j'ai définis récemment donc ma table est déjà peuplée.

le code du déclencheur est :
Code :
1
2
3
4
5
AS
BEGIN
  IF (NEW.CODE_INTERNE IS NULL) THEN
    NEW.CODE_INTERNE = GEN_ID(GEN_TB_SR_SERVICE_ID,1);
END
__________________
Bon courage ou Bonne Chance (selon le contexte)
Just-Soft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 11h49   #2
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
bonjour


Pourquoi veux tu faire cela ? car cela peut être très "dangereux" en créant un doublon un "code_interne" en double même si l'intégrité référentielle va ici jouer son rôle

Ce qui est curieux dans ta requête est l'absence de la valeur de remplacement
Code :
1
2
 
UPDATE TB_SR_SERVICE SET code_interne = qq chose
ou si tu veux remplacer par une valeur autoincrementée
Code :
1
2
 
UPDATE TB_SR_SERVICE SET code_interne = GEN_ID(GEN_TB_SR_SERVICE_ID,1)
a+
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 13h09   #3
Membre Expert
 
Homme AbdelHakim Kellouche
Inscription : mai 2008
Messages : 1 977
Détails du profil
Informations personnelles :
Nom : Homme AbdelHakim Kellouche
Localisation : Algérie

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : mai 2008
Messages : 1 977
Points : 2 126
Points : 2 126
Envoyer un message via MSN à Just-Soft Envoyer un message via Skype™ à Just-Soft
Citation:
Envoyé par dehorter olivier Voir le message
bonjour
Pourquoi veux tu faire cela ? car cela peut être très "dangereux" en créant un doublon un "code_interne" en double même si l'intégrité référentielle va ici jouer son rôle
c'est parce que je ne savais pas comment le faire

Citation:
Envoyé par dehorter olivier Voir le message
ou si tu veux remplacer par une valeur autoincrementée
Code :
1
2
 
UPDATE TB_SR_SERVICE SET code_interne = GEN_ID(GEN_TB_SR_SERVICE_ID,1)
c'est de ça que je parlais donc j'ai retenu cette solution mais à l'exécution ma table débute avec 225 et pas 1 comme si j'ai supprimé 224 lignes alors que je n'ai pas fais ! comment forcer la MAJ avec 1 ?!
__________________
Bon courage ou Bonne Chance (selon le contexte)
Just-Soft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 14h07   #4
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
re

le 1 dans la fontion GEN_ID indique juste l'incrementation (ici on fait une incrementation de 1)

bon courage


a+
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 14h13   #5
Membre Expert
 
Homme AbdelHakim Kellouche
Inscription : mai 2008
Messages : 1 977
Détails du profil
Informations personnelles :
Nom : Homme AbdelHakim Kellouche
Localisation : Algérie

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : mai 2008
Messages : 1 977
Points : 2 126
Points : 2 126
Envoyer un message via MSN à Just-Soft Envoyer un message via Skype™ à Just-Soft
Re,
oui ça je l'ai compris merci tout de même. ma question est comment le forcer à commencer par 1
__________________
Bon courage ou Bonne Chance (selon le contexte)
Just-Soft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 14h25   #6
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837



Il faut reconfigurer le générateur
Code :
1
2
 
ALTER SEQUENCE GEN_TB_SR_SERVICE_ID RESTART WITH 1
attention dans un PS, il faut faire :
Code :
1
2
 
EXECUTE STATEMENT 'ALTER SEQUENCE GEN_TB_SR_SERVICE_ID RESTART WITH 1
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 14h46   #7
Membre Expert
 
Homme AbdelHakim Kellouche
Inscription : mai 2008
Messages : 1 977
Détails du profil
Informations personnelles :
Nom : Homme AbdelHakim Kellouche
Localisation : Algérie

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : mai 2008
Messages : 1 977
Points : 2 126
Points : 2 126
Envoyer un message via MSN à Just-Soft Envoyer un message via Skype™ à Just-Soft
merci dehorter olivier, t'es super sympa, ça marche.
__________________
Bon courage ou Bonne Chance (selon le contexte)
Just-Soft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 11h29   #8
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
Avec plaisir
dehorter olivier 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 17h56.


 
 
 
 
Partenaires

Hébergement Web