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 04/04/2013 23:07:10

daamien
damien clochard

Alerte de Sécurité PostgreSQL : mettez vos serveurs à jour !

Si ce n'est pas encore fait, prenez le temps de lire l'annonce et la FAQ
ci-dessous :

http://blog.postgresql.fr/index.php?pos … %2C-8.4.17

http://www.postgresql.fr/faq_correctif_20130404

Et mettez à jour vos serveurs dès que possible !


PS : Merci à Guillaume Lelarge et Julien Rouhaud pour la traduction

Hors ligne

#2 30/12/2015 12:02:53

olivierpons
Membre

Re : Alerte de Sécurité PostgreSQL : mettez vos serveurs à jour !

Bonjour,

J'ai un souci de génération de script. Voici ce que j'aimerais faire : un seul script, gigantesque, qui transforme un fichier de données en script que je pourrais injecter dans PostgreSQL.
J'ai un énorme fichier d'objets (oui, des objets simples au sens propre du terme en français !) :

- crayon
- gomme
- stylo
- voiture

etc..

Et je sais que ces objets sont dans un ordre précis de "groupes de couleurs". Pour faire simple, je vous donne un exemple de "groupes de couleurs" :

- bleu et rouge
- bleu et jaune
- orange et bleu
- orange et vert
- orange et rouge

et cet ordre tourne, c'est à dire que quand on arrive au dernier, on repart au premier, et cela pour toute la liste des objets.

Je veux créer :
- une table "couleurs"
- une table "groupe_couleurs" : ce sera une table qui pourra être lié à une ou plusieurs couleurs, et une couleur pourra être reliée à une ou plusieurs groupe_couleurs : c'est donc une many_to_many
- une table "objets" : un objet aura un et un seul groupe de couleurs, ce sera donc une relation one_to_many

DROP TABLE IF EXISTS color;
CREATE TABLE color (
   id AUTOINC,
   description VARCHAR(50)
)
DROP TABLE IF EXISTS group_colors;
CREATE TABLE group_colors(
   id AUTOINC,
   description VARCHAR(50)
)
DROP TABLE IF EXISTS group_colors_color;
CREATE TABLE group_colors_color(
   group_colors_id INT,
   color_id INT,
   group_colors_id INT,
   CONSTRAINT color_id NOT NULL FOREIGN KEY REFERENCES color(id),
   CONSTRAINT group_colors_id NOT NULL FOREIGN KEY REFERENCES group_colors(id)
)
DROP TABLE IF EXISTS obj;
CREATE TABLE obj(
   id AUTOINC,
   description VARCHAR(50),
   group_colors_id INT,
   CONSTRAINT group_colors_id NOT NULL FOREIGN KEY REFERENCES group_colors(id)
)

A partir de là, et mon vrai problème est là : dans le même script, ce que je ne sais pas faire, c'est insérer des éléments, par exemple une couleur, puis récupérer son id et le ressortir pour pouvoir lier cette couleur à un ou plusieurs groupes. Même problème juste après : il me faut insérer des objets, et après l'insertion, pouvoir y lier un groupe de couleurs, que j'aurai crée au tout début du script (je rappelle que j'ai > 600000 objets à insérer !)

Comment faudrait-il m'y prendre ?

Merci par avance pour votre aide,

Olivier Pons

Hors ligne

#3 30/12/2015 14:47:14

rjuju
Administrateur

Re : Alerte de Sécurité PostgreSQL : mettez vos serveurs à jour !

Bonjour,


Merci de créer un nouveau thread plutôt que de répondre à un thread qui n'a rien à voir. Merci.

Hors ligne

Pied de page des forums