From: | Craig Ringer <craig(at)postnewspapers(dot)com(dot)au> |
---|---|
To: | 页公倒龙 <77287991(at)qq(dot)com> |
Cc: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: 回复: [GENERAL] How to make the user-defined function or type beingaccessed in the global database server? |
Date: | 2011-02-21 08:42:47 |
Message-ID: | 4D622587.9080406@postnewspapers.com.au |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 20/02/2011 2:13 PM, 页公倒龙 wrote:
> Thanks for your replying. But actually there are some difference
> database now, and I really want to define the user-defined function or
> type one time so that they can be accessed as system-defined function or
> type, how can I do?
It sounds like you want something like Oracle's packages. If so, you're
out of luck: postgresql doesn't support anything like that at this point.
Bundle the functions, type definitions, etc up in a .sql file and run
that on each database. It's cleanest if you do this by creating a new
schema called, say, 'shared', then SET search_path=shared before
creating the functions and types. That way they all go in one place
that's separated from the per-database content. To access them, SET
search_path=shared,public . You can "ALTER USER SET
search_path=shared,public" or "ALTER DATABASE SET
search_path=shared,public" to make it default.
See the manual for more information about schema, and the commands/options:
SET
search_path
CREATE SCHEMA
CREATE FUNCTION
--
Craig Ringer
Tech-related writing at http://soapyfrogs.blogspot.com/
From | Date | Subject | |
---|---|---|---|
Next Message | John R Pierce | 2011-02-21 08:54:51 | Re: 回复: [GENERAL] How to make the user-defined function or type beingaccessed in the global database server? |
Previous Message | Craig Ringer | 2011-02-21 08:37:15 | Re: Worst case scenario of a compromised non super-user PostgreSQL user account |