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 éclairé Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    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 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 055
    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
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    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.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Membre éclairé Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    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 Expert

    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
    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 éclairé Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    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