Re: plpgsql: return multiple result sets or temp table
От | Jeff Eckermann |
---|---|
Тема | Re: plpgsql: return multiple result sets or temp table |
Дата | |
Msg-id | 20031021220356.6087.qmail@web20806.mail.yahoo.com обсуждение исходный текст |
Ответ на | Re: plpgsql: return multiple result sets or temp table (Oksana Yasynska <oksana@athabascau.ca>) |
Ответы |
Re: plpgsql: return multiple result sets or temp table
|
Список | pgsql-general |
--- Oksana Yasynska <oksana@athabascau.ca> wrote: > I need to write a plpgsql function which returns > information selected from the > 50 tables (in the following example: title, > descriptions and locations) to > the other application. By the way, data has a tree > structure. > > I have an idea to use function to build a temp > table. > Is it feasible to return temporary table as a > plpgsql function result ? Yes. This was a commonly used workaround before version 7.2.x. A couple of points to be aware of: * A temporary table persists only for (and is only available to) the current user session. * Better to use "EXECUTE" to create the table, as there are some potential gotchas with tables created by a function. Check the archives for plenty of examples. > > > For example, 3 tables: > CREATE TABLE "lom" ( > "id" int4 DEFAULT nextval('"lom_id_seq"'::text) > NOT NULL, > "title" varchar(1000)); > > CREATE TABLE "description" ( > "id" int4 DEFAULT > nextval('"description_id_seq"'::text) NOT NULL, > "lom_id" int4, > "description" varchar(2000)); > > CREATE TABLE "location" ( > "id" int4 DEFAULT > nextval('"location_id_seq"'::text) NOT NULL, > "lom_id" int4, > "uri" varchar(1000)); > > With the following information: > > INSERT INTO "lom" ("id", "title") VALUES(948, > 'title'); > > INSERT INTO "description" ("id", "lom_id", > "description") VALUES(564, 948, > 'description1'); > INSERT INTO "description" ("id", "lom_id", > "description") VALUES(565, 948, > 'description2'); > > INSERT INTO "location" ("id", "lom_id", "uri") > VALUES(1258, 948, > 'http://yahoo.ca - location1'); > INSERT INTO "location" ("id", "lom_id", "uri") > VALUES(1259, 948, > 'http://google.ca - location2'); > > > > Oksana > __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
В списке pgsql-general по дате отправления: