Hi,

I've this data model:

CREATE SEQUENCE a_seq START 1;
CREATE SEQUENCE b_seq START 1;

CREATE TABLE a (
   aid integer NOT NULL PRIMARY KEY,
   aval character varying (255) NOT NULL
);

INSERT INTO a (select nextval('a_seq'),'a1');
INSERT INTO a (select nextval('a_seq'),'a2');

CREATE TABLE b (
   bid integer NOT NULL PRIMARY KEY,
   bval character varying (255) NOT NULL
);

INSERT INTO b (select nextval('b_seq'),'b1');
INSERT INTO b (select nextval('b_seq'),'b2');

CREATE TABLE c (
   cid integer NOT NULL,
   aid integer REFERENCES a (aid),
   bid integer REFERENCES b (bid),
   cval character varying (255) NOT NULL,
   PRIMARY KEY (cid)
);


CREATE VIEW myview AS SELECT cid,aval,bval,cval FROM c INNER JOIN a ON (a.aid=c.aid) INNER JOIN b ON (b.bid=c.bid);


Now I'd like to insert a row into "c" and if necessary
simultaneously create the referenced rows in
the referenced tables:

INSERT INTO myview VALUES (10,'a3','b1','c1');
(Here a row in "a" with aval 'a3' should be
created)

INSERT INTO myview VALUES (20,'a1','b2','c2');
(here a row in "a" with aval 'a1' should not
be created but referenced.)
(Same for "b").


"Insert into view" would't work, how could I do my INSERTS efficiently in postgres without having eache time an extra query which asks whether there already is a row in "a" which could be referenced to. ie mache ich das

Thanks!

Marc

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.com/



---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to