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

Langage SQL Discussion :

[SQL] Auto incrément général


Sujet :

Langage SQL

  1. #1
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut [SQL] Auto incrément général
    Hello

    Malgré que le sujet ait été traité maintes et maintes fois, je n'ai pas obtenu de réponse à mon interrogation !

    J'ai bien trouvé des solutions pour gérer les compteurs auto-incrément sous Interbase, SQL-Server, ... Mais chaque fois la solution était différente en fonction du SGBDR.

    Ma question : Existe-t-il une façon de gérer les compteurs auto-incrément compatible avec tout les SGBDR ? Cela impose donc là une solution totalement en SQL standard et non avec les modifications propriétaire !

    La solution que j'ai retenu pour l'instant qui fonctionne avec tous, c'est le cas d'une table gérant les clés primaires (solutions présenté dans les cours sur DVP). Seulement, cette solution est critiquée lors de l'accès par plusieurs utilisateurs ... !

    Alors, la solution miracle existe-t-elle ...
    (pourquoi je pose cette question en faite ... )

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 034
    Points : 23 779
    Points
    23 779
    Par défaut
    Bonjour,

    J'ai bien peur que non, parce que l'auto-incrément, à mon sens, n'est pas du standard SQL mais une fonctionnalité proposée (ou pas forcément) par le SGBDR.

    Déjà qu'avec un standard comme le SQL, d'un SGBDR à l'autre on ne retrouve pas les mêmes syntaxes, alors pour une fonctionnalité comme l'auto-incrément, j'ai encore moins d'espoirs...

    ced

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 102
    Points : 28 387
    Points
    28 387
    Par défaut
    La syntaxe est définie dans le standard SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY
    ( [START WITH ...] [INCREMENT BY ...] [{NO MINVALUE | MINVALUE ...}] [{NO MAXVALUE | MAXVALUE ...}] [[NO] CYCLE] )
    Ensuite, tout dépend de la manière dont les SGBD [ne] prennent [pas] en charge le standard.

  4. #4
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Bien, merci al1_24 pour le code !

    Apparemment le premier test que j'ai fait sur Interbase me montre que ça n'est pas supporté ...

    Je m'en remets donc à la solution avec la table gérant les auto incrément, l'accès multi-utilisateurs n'était pas requis dans mon application ...

    Merci !

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par femtosa
    Apparemment le premier test que j'ai fait sur Interbase me montre que ça n'est pas supporté ...
    Sauf erreur de ma part, Interbase supporte une structure appelée générateur qui correspond aux séquences sous Oracle.
    Vous pouvez faire des appels concurrents (donc multi-utilisateurs) à ces objets qui vous retournent à chaque appel un numéro séquentiel unique (Cf. la définition de votre générateur pour connaître la valeur de départ, le pas, etc.).

    [EDIT]
    Comme SQLpro l'a écrit dans un de ces articles, Oracle et Interbase sont les 2 seuls SGBD - en tout cas à l'époque - à implémenter ce type d'objets.
    [/EDIT]

  6. #6
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Citation Envoyé par Magnus
    Citation Envoyé par femtosa
    Apparemment le premier test que j'ai fait sur Interbase me montre que ça n'est pas supporté ...
    Je parlais là du code proposé par al1_24.

    Avec Interbase, on peut utilisé un solution avec son 'gen_id()' décrite ici !

    Evidemment ça reste valable pour Interbase uniquement !

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

Discussions similaires

  1. création clé primaire auto incrémentable SQL ACCESS ?
    Par colorid dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/11/2007, 14h25
  2. [SQL 2k]Forcer un auto incrément ?
    Par elflamby dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/11/2006, 13h16
  3. [SQL] Récupérer simplement la valeur de l'id "auto incrémenté"
    Par yazerty dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/10/2006, 12h16
  4. [TRANSACT-SQL] clé primaire qui s'auto-incrémente
    Par DonJR dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/05/2006, 11h16
  5. Auto incrément SQL Server 2005
    Par berceker united dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/04/2006, 13h07

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