IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Update d'un champ AutoIncrement


Sujet :

SQL Firebird

  1. #1
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    Mon blog sur WordPress

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE TB_SR_SERVICE SET code_interne = qq chose
    ou si tu veux remplacer par une valeur autoincrementée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE TB_SR_SERVICE SET code_interne = GEN_ID(GEN_TB_SR_SERVICE_ID,1)
    a+
    Merci d'ajouter un sur les tags qui vous ont aidé

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    Mon blog sur WordPress

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    re

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

    bon courage


    a+
    Merci d'ajouter un sur les tags qui vous ont aidé

  5. #5
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    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)
    Mon blog sur WordPress

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut



    Il faut reconfigurer le générateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER SEQUENCE GEN_TB_SR_SERVICE_ID RESTART WITH 1
    attention dans un PS, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EXECUTE STATEMENT 'ALTER SEQUENCE GEN_TB_SR_SERVICE_ID RESTART WITH 1
    Merci d'ajouter un sur les tags qui vous ont aidé

  7. #7
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    merci dehorter olivier, t'es super sympa, ça marche.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Avec plaisir
    Merci d'ajouter un sur les tags qui vous ont aidé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Pb sur update à partir champs Textbox
    Par patdez dans le forum ASP.NET
    Réponses: 5
    Dernier message: 28/06/2006, 09h28
  2. Probleme d'UPDATE sur un champ text
    Par Nip dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/07/2005, 11h35
  3. Commande Update... vider certains champ dans table.
    Par angelevil dans le forum ASP
    Réponses: 3
    Dernier message: 04/05/2005, 21h08
  4. Update d'un champ grace à 2 champs différents
    Par albert69 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 23/03/2005, 15h40
  5. Update d'un champ BLOB
    Par ZeKlubb dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 17/01/2004, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo