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

SQLite Discussion :

ENUM et création de types


Sujet :

SQLite

  1. #1
    Membre éclairé
    Avatar de Heavy Metal Hero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2007
    Messages : 152
    Billets dans le blog
    13
    Par défaut ENUM et création de types
    Bonjour,

    Je dois convertir le code servant à la création d'une base PostGre SQL en SQLite. Je bloque car SQLite ne permet ni de faire des enums ni créer des types. Je cherche un moyen de contourner ce problème.

    Par exemple imaginons que l'on ai en PostGre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TYPE AckStatusEnum AS ENUM (
    'ACKNOWLEDGED','NOT_ACKNOWLEDGED','ERROR_RECEIVED','NOT_SENT'
    );
     
    CREATE TABLE ACK_EVENT(
    ...
    	ACK_STATUS AckStatusEnum,
    ...
    );
     
    CREATE TYPE aggr_type AS (
    ...
      	severity alertseverityenum ,
    ...
    );
    Les "..." seraient d'autres colonnes. Comment pouvoir traduire cela en SQLite ?
    Comment créer un type enum, que l'on peut utiliser ensuite dans une table ET un autre type ? D'ailleurs comment simuler la création de ce type (qui devrait être lui aussi utilisable dans une table et un type) ?

    Merci de votre aide

  2. #2
    Membre éclairé
    Avatar de Heavy Metal Hero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2007
    Messages : 152
    Billets dans le blog
    13
    Par défaut
    J'ai trouvé une solution qui me semble appropriée pour remplacer les types. En fait je crée une table pour les types qui contient les élements dont j'ai besoin (des TEXT pour les enums). ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE AckStatusEnum (id INTEGER PRIMARY KEY, type TEXT);
    INSERT INTO AckStatusEnum VALUES(1, 'ACKNOWLEDGED'), (2, 'NOT_ACKNOWLEDGED'), (3, 'ERROR_RECEIVED'), (4, 'NOT_SENT');
     
    CREATE TABLE ACK_EVENT(
        ...
        ACK_STATUS REFERENCES AckStatusEnum(type),
        ...
    );

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/05/2009, 09h40
  2. création de type enum en runtime
    Par marwaa dans le forum Windows Forms
    Réponses: 15
    Dernier message: 10/03/2009, 16h22
  3. Création formulaire type
    Par Jacquesdu38 dans le forum Modélisation
    Réponses: 3
    Dernier message: 10/07/2008, 09h04
  4. Création de types de données en Visio en modèle de DB
    Par jerome.fortias dans le forum Visio
    Réponses: 0
    Dernier message: 31/03/2008, 11h04
  5. Création colonne type memo
    Par Mvu dans le forum Access
    Réponses: 8
    Dernier message: 23/06/2006, 11h57

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