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

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

cross-database references are not implemented

От
"Paul Dam"
Дата:

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

От
"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