Création de tables en fonction du contenu d'un fichier texte

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour, Je souhaiterai savoir s’il est possible de faire quelque chose comme ça :

cursor.execute("""
    CREATE TABLE IF NOT EXISTS ? (
        ? INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE
    """?
    (annee + '_' + type, annee + '_' + type + '_id')
)

J’ai (peut être mal) cherché et je n’ai pas trouvé si c’était possible de faire ça.

J’explique ma problématique. J’ai un fichier .txt qui contient des données, par exemple :

Axxx[...]xxx
Cxxx[...]xxx
Cxxx[...]xxx
Cxxx[...]xxx
Axxx[...]xxx
Mxxx[...]xxx
[...]

Je dois découper ce fichier dans une base de données.

Sur une ligne, tous les caractères sont collés. En fonction de l’année et du type de la ligne (A, C, M, …) le découpage est différent.
Admettons que pour année 2019 et type A, les x premiers caractères correspondent au jour, les y suivants au mois, etc …

Je souhaiterai pouvoir créer des tables à la volée en fonction de ce que je trouve dans mon fichier txt.
Si je trouve un type A et C en 2019. Je créé les tables 2019_A et 2019_C avec les id 2019_A_id et 2019_C_id. Si je ne trouve que le type A, je créé uniquement la table correspondante.

Dans un second temps, je complèterais la requête de façon à créer la table en entier, pour cela j’irai lire dans des .csv qui contiennent le format (chp | début | fin) pour mon découpage.

L’intérêt que je vois dans cette façon de faire est que par la suite quand de nouveaux formats apparaitront, je n’aurai qu’à tenir à jour des fichiers .csv dans mon répertoire format pour que la création des tables se fassent sans avoir à toucher au code.

J’espère avoir été clair.
Merci d’avance pour l’attention que vous porterez à ma problématique.

Dans le doute, reboot.

+0 -0
Auteur du sujet

J’ai trouvé en faisant :

cursor.execute("""
    CREATE TABLE IF NOT EXISTS """ + 'T' + annee + type + """(
        """ + 'T' + annee + type + 'id' + """INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE
    """?
    (annee + '_' + type, annee + '_' + type + '_id')
) 

à la place de :

cursor.execute("""
    CREATE TABLE IF NOT EXISTS ? (
        ? INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE
    """?
    (annee + '_' + type, annee + '_' + type + '_id')
)

ça fonctionne.

Merci

Dans le doute, reboot.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte