PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 01/04/2009 10:41:04

loenia
Membre

création de tables

Bonjour,
j'utilise postgres depuis peu (2 jours).
J'ai vu qu'on pouvait utiliser la fonction COPY pour récupérer de données dans un fichier texte et les insérer dans une table.
J'aimerai savoir s'il est possible d'avoir une fonction similaire pour créer des tables à partir d'une liste donnée dans un fichier texte.
Merci de prendre le temps de me répondre.

Hors ligne

#2 01/04/2009 11:12:21

Marc Cousin
Membre

Re : création de tables

La réponse est non, copy ne fait pas cela, et il n'y a pas d'autre fonction de ce genre dans le moteur à ma connaissance.
Le but de copy est avant tout de permettre de faire un chargement de masse dans une table.

Pour créer une série de tables à partir d'informations dans un fichier texte, il faut générer un script SQL contenant des create table à partir de ce ficher, ce qui implique je pense un peu de programmation (à moins que des outils le permettent, je n'en connais pas). C'est le genre de choses simples à scripter en perl par exemple.

Peut être qu'un extrait de ce fichier texte permettrait de voir un peu plus clairement ce qui est faisable ?


Marc.

Hors ligne

#3 01/04/2009 11:22:15

loenia
Membre

Re : création de tables

merci pour la réponse.
voici un exemple des tables que je dois rentrer. Bon la mise en page est pas super mais bon.


+-------------------------------------------------------+
| STOCKAGES_A_FAIRE                                     |
+--------------+---------+------+-----+---------+-------+
| Field        | Type    | Null | Key | Default | Extra |
+--------------+---------+------+-----+---------+-------+
| code_element | int(11) |      | PRI | 0       |       |
| code_regle   | int(11) |      | PRI | 0       |       |
+--------------+---------+------+-----+---------+-------+

J'ai une dizaine de tables à créer et celle-ci est la plus minimaliste. D'où la recherche d'une fonction pour un gain de temps et être sûre de ne pas faire d'erreurs.
merci de prendre du temps pour répondre à mes questions.

Hors ligne

#4 01/04/2009 11:33:44

Marc Cousin
Membre

Re : création de tables

Ca ressemble à une table mysql ça non ?

Si c'est le cas et que le but c'est d'importer un schema mysql, pourquoi ne pas faire un dump de celui ci (via mysqldump, avec --no-data si je me souviens bien) ?

Après il suffira de changer quelques détails du script (faire des remplacements sur les types incompatibles). Si c'est bien du mysql, c'est le plus rapide

Sinon, si c'est vraiment un fichier texte, le codage risque d'être un peu plus long et complexe.

Est-ce bien du mysql et la méthode avec le dump est elle envisageable ?


Marc.

Hors ligne

#5 01/04/2009 11:42:17

loenia
Membre

Re : création de tables

En effet c'est du mysql et j'ai pensé à ça. Mais on ne m'a fourni qu'un fichier texte avec les différentes tables, en me demandant de les transférer sous postgres.
Conclusion, ben je vais coder!

Hors ligne

#6 01/04/2009 11:52:28

Marc Cousin
Membre

Re : création de tables

il y a beaucoup de temps à gagner à avoir le dump ... le code se résumera à remplacer quelques types par leur équivalent postgres, via des petites expressions régulières par exemple.

convertir les descriptions de table sera beaucoup plus lourd


Marc.

Hors ligne

Pied de page des forums