OVH Cloud OVH Cloud

insert into view

1 réponse
Avatar
Jean Monnat
Salut Denis,

J'ai trouvé une partie de la solution pour insérer des données à partir
d'une vue dans postgres. ma vue c'est ça:

CREATE OR REPLACE VIEW "View1" AS
SELECT DISTINCT dna_sequence.symbole, dna_sequence.description,
dna_sequence.geneid, public_database.id, public_database.noms,
public_database."type", public_database.url
FROM dna_sequence dna_sequence, public_database public_database
WHERE dna_sequence.fk_db::text = public_database.id::text
ORDER BY dna_sequence.symbole, dna_sequence.description,
dna_sequence.geneid, public_database.id, public_database.noms,
public_database."type", public_database.url;

ALTER TABLE "View1" OWNER TO postgres;

Voilà les règles que j'ai créées:

CREATE or replace RULE dna AS ON INSERT TO "View1" DO INSTEAD
INSERT INTO dna_sequence VALUES (
NEW.geneid,
NEW.symbole,
NEW.description
);
CREATE or replace RULE db AS ON INSERT TO "View1" DO INSTEAD
INSERT INTO public_database VALUES (
NEW.id,
NEW.noms,
NEW.type,
NEW.url

);

Avec ces deux règles je peut modifier deux tables à partir de ma vue
"View1", par contre la vue reste inchangée après introduction des
nouvelles données.

Je sais pas quoi rajouter...
En espèrant que ça réponde un peu à nos questions existentielles...
Bonne fin de fin de semaine.
Jean


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

1 réponse

Avatar
Sun Wukong
Bonjour,

Ce n'est pas sûr que Denis ait bien le message ;-)

Cordialement,
SW

Le 17.09.2006 20:04,, le perspicace Jean Monnat s'exprimait en ces termes:

Salut Denis,

J'ai trouvé une partie de la solution pour insérer des données à partir
d'une vue dans postgres. ma vue c'est ça:

CREATE OR REPLACE VIEW "View1" AS
SELECT DISTINCT dna_sequence.symbole, dna_sequence.description,
dna_sequence.geneid, public_database.id, public_database.noms,
public_database."type", public_database.url
FROM dna_sequence dna_sequence, public_database public_database
WHERE dna_sequence.fk_db::text = public_database.id::text
ORDER BY dna_sequence.symbole, dna_sequence.description,
dna_sequence.geneid, public_database.id, public_database.noms,
public_database."type", public_database.url;

ALTER TABLE "View1" OWNER TO postgres;

Voilà les règles que j'ai créées:

CREATE or replace RULE dna AS ON INSERT TO "View1" DO INSTEAD
INSERT INTO dna_sequence VALUES (
NEW.geneid,
NEW.symbole,
NEW.description
);
CREATE or replace RULE db AS ON INSERT TO "View1" DO INSTEAD
INSERT INTO public_database VALUES (
NEW.id,
NEW.noms,
NEW.type,
NEW.url

);

Avec ces deux règles je peut modifier deux tables à partir de ma vue
"View1", par contre la vue reste inchangée après introduction des
nouvelles données.

Je sais pas quoi rajouter...
En espèrant que ça réponde un peu à nos questions existentielles...
Bonne fin de fin de semaine.
Jean






--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact