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 :

Scripts de création de base génériques


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 16
    Points : 14
    Points
    14
    Par défaut Scripts de création de base génériques
    Bonjour.

    J'ai une question un peu naïve, beaucoup même en fait.

    Peut-on écrire un script de génération de base de données utilisables sur plusieurs bases (Oracle, MySql, SQLServer, Postgree, H2, Interbase, ...) avec des générateurs de clé unique automatique de type AUTO INCREMENT ou séquence?

    Je ne pense pas cela possible mais j'aimerais avoir votre avis d'expert.

    Merci.

  2. #2
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    OUI si tu te limite a ce qui est décrit dans les normes du languages et que tu n'utilise pas des syntaxe spécifiques que certains peuvent avoir introduite dans leur sgbd.

    http://fr.wikipedia.org/wiki/Structured_Query_Language

    maintenant je ne suis pas expert en sgdb non plus. mais ce principe se retrouve sur d'autres langages.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Imaginons une table simple.
    Voila ma requète de création sous Mysql et H2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create table TEST(
    ID INT AUTO_INCREMENT PRIMARY KEY,
    test VARCHAR(64) NOT NULL UNIQUE);
    Maintenant la même requète ne passe sous et c'est normal car AUTO_INCREMENT ne fait pas partie des standarts SQL à ma connaissance et Oracle ne l'a pas implémenté.

    Existe-t-il un moyen de créer des tables génériquement avec un ID qui s'auto incrémente tout seul sur plusieurs SGBDR?

    J'ai aussi des soucis sur les données de types DATE, je veux faire des comparaison de date en sql mais les méthodes de comparaisons (ex Date_diff) sont propres à chaque SGBDR, du coup, je me suis dit que j'aillais stocker le timestamp de mes dates mais j'ai l'impression que le type de données pour stocket des entiers sur 64 bits n'est pas défini par le même mot clé sur les différents SGBDR...(BIGINT, NUMBER, ...)

    Il existe aussi le type TIMESTAMP en SQL, mais est-ce que les différents sgbdr stockent-ils leur timestamp de la même manière : milli-second, second depuis 1970?

    Si je dis une bétise, n'hésitez surtout pas à me contredire... hein?

    Que faire?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    L'AUTO_INCREMENT ou les séquences sont des solutions propres à certains SGBD.
    Si vous voulez une solution qui soit portable plus facilement, tournez vous vers les tables de clés.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Merci, je ne connaissais pas cette solution.

    Est-il possible d'écrire un script de procédure stockée génériques à toutes les bases citées plus haut?

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Sur un modèle simplissime ou vous n'attendez aucune performance ça doit être possible.

    Mais dès que vous voulez bricoler un peu, il n'y a plus rien de générique.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Merci, c'est bien ce que je pensais.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/01/2008, 16h17
  2. Script de création de base Oracle
    Par lon.zebu dans le forum Import/Export
    Réponses: 2
    Dernier message: 28/12/2007, 11h36
  3. Script de création de base
    Par andlio dans le forum Oracle
    Réponses: 20
    Dernier message: 20/07/2005, 13h39
  4. Réponses: 3
    Dernier message: 24/10/2003, 21h46
  5. Réponses: 3
    Dernier message: 24/10/2003, 21h46

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