Обсуждение: cross-database references are not implemented

Поиск
Список
Период
Сортировка

cross-database references are not implemented

От
"Paul Dam"
Дата:
<div class="Section1"><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">Hoi,</span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">I have a database with 2 schemas:</span></font><p class="MsoNormal"><font face="Arial"
size="2"><spanstyle="font-size:10.0pt; 
font-family:Arial">- public</span></font><p class="MsoNormal"><font face="Arial" size="2"><span
style="font-size:10.0pt;
font-family:Arial">- export</span></font><p class="MsoNormal"><font face="Arial" size="2"><span
style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">In the export schema I have tables that are filled during an export process.</span></font><p
class="MsoNormal"><fontface="Arial" size="2"><span style="font-size:10.0pt; 
font-family:Arial">There is some data I want to have in a table in the public schema as well.</span></font><p
class="MsoNormal"><fontface="Arial" size="2"><span style="font-size:10.0pt; 
font-family:Arial">I wrote a trigger function that after insert in the export table does an export in the public
table.</span></font><pclass="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt; 
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">If I do an insert I get the error message: "ERROR:  cross-database references are not
implemented".</span></font><pclass="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt; 
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">How can I solve this?</span></font><p class="MsoNormal"><font face="Arial" size="2"><span
style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="NL"
style="font-size:10.0pt;
font-family:Arial">Met vriendelijke groet,</span></font><p class="MsoNormal"><font face="Arial" size="2"><span
lang="NL"style="font-size:10.0pt; 
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Times New Roman" size="3"><span lang="NL"
style="font-size:12.0pt">PaulDam</span></font></div> 

Re: cross-database references are not implemented

От
"Pavel Stehule"
Дата:
Hello

it works for me

postgres=# create schema export;
CREATE SCHEMA
Time: 45,918 ms
postgres=# create table public.a(a varchar);
CREATE TABLE
Time: 91,385 ms
postgres=# create table export.a(a varchar);
\CREATE TABLE
Time: 9,462 ms
postgres=# create function ftrg() returns trigger as $$begin insert
into export.a values(new.*); return new; end$$ language plpgsql;
CREATE FUNCTION
Time: 486,395 ms
postgres=# \h CREATE trigger
Command:     CREATE TRIGGER
Description: define a new trigger
Syntax:
CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }   ON table [ FOR [ EACH ] { ROW | STATEMENT } ]   EXECUTE
PROCEDUREfuncname ( arguments )
 

postgres=# CREATE TRIGGER aaa after insert on public.a for each row
execute procedure ftrg();
CREATE TRIGGER
Time: 5,848 ms
postgres=# insert into public.a values('ahoj');
INSERT 0 1
Time: 5,179 ms
postgres=# SELECT * from export.a ; a
------ahoj
(1 row)

postgresql 8.3

Pavel

2008/6/3 Paul Dam <p.dam@amyyon.nl>:
> Hoi,
>
>
>
> I have a database with 2 schemas:
>
> - public
>
> - export
>
>
>
> In the export schema I have tables that are filled during an export process.
>
> There is some data I want to have in a table in the public schema as well.
>
> I wrote a trigger function that after insert in the export table does an
> export in the public table.
>
>
>
> If I do an insert I get the error message: "ERROR:  cross-database
> references are not implemented".
>
>
>
> How can I solve this?
>
>
>
> Met vriendelijke groet,
>
>
>
> Paul Dam


Re: cross-database references are not implemented

От
Adrian Klaver
Дата:
On Tuesday 03 June 2008 6:12 am, Paul Dam wrote:
> Hoi,
>
>
>
> I have a database with 2 schemas:
>
> - public
>
> - export
>
>
>
> In the export schema I have tables that are filled during an export
> process.
>
> There is some data I want to have in a table in the public schema as
> well.
>
> I wrote a trigger function that after insert in the export table does an
> export in the public table.
>
>
>
> If I do an insert I get the error message: "ERROR:  cross-database
> references are not implemented".
>
>
>
> How can I solve this?
>
>
>
> Met vriendelijke groet,
>
>
>
> Paul Dam

You will need to show the actual query, but I suspect you have an extra period 
in your table name. Instead of public.table_name you have something like 
public.table.name.
-- 
Adrian Klaver
aklaver@comcast.net


Re: cross-database references are not implemented

От
"Paul Dam"
Дата:
Thanks Adrian,

I casted a column to a type with "value::<schema>.<table>.<column>%type"
That was the problem.

Met vriendelijke groet,
Paul Dam

-----Oorspronkelijk bericht-----
Van: Adrian Klaver [mailto:aklaver@comcast.net]
Verzonden: dinsdag 3 juni 2008 15:57
Aan: pgsql-sql@postgresql.org
CC: Paul Dam
Onderwerp: Re: [SQL] cross-database references are not implemented

On Tuesday 03 June 2008 6:12 am, Paul Dam wrote:
> Hoi,
>
>
>
> I have a database with 2 schemas:
>
> - public
>
> - export
>
>
>
> In the export schema I have tables that are filled during an export
> process.
>
> There is some data I want to have in a table in the public schema as
> well.
>
> I wrote a trigger function that after insert in the export table does
an
> export in the public table.
>
>
>
> If I do an insert I get the error message: "ERROR:  cross-database
> references are not implemented".
>
>
>
> How can I solve this?
>
>
>
> Met vriendelijke groet,
>
>
>
> Paul Dam

You will need to show the actual query, but I suspect you have an extra
period
in your table name. Instead of public.table_name you have something like

public.table.name.
--
Adrian Klaver
aklaver@comcast.net