Re: ERROR: syntax error at or near "NEW"

Поиск
Список
Период
Сортировка
От Rafael Domiciano
Тема Re: ERROR: syntax error at or near "NEW"
Дата
Msg-id 3a0028490909020906n7862b737rc43771479b1ba600@mail.gmail.com
обсуждение исходный текст
Ответ на ERROR: syntax error at or near "NEW"  (Venkat Godditi <venkatg.16@gmail.com>)
Список pgsql-admin
Boa Tarde Venkat,

Acredito que o erro está na sua chamada da função dblink_exec:
SELECT * FROM dblink_exec('hostname=sys2ip dbname=testB  user=postgres password=postgres','INSERT INTO emp NEW.*');

Pelo fato de você estar passando o NEW dentro de aspas, o postgres está entendendo que é uma string e não o identificador único NEW.

On Tue, Sep 1, 2009 at 6:15 AM, Venkat Godditi <venkatg.16@gmail.com> wrote:
HI,

 I am having a problem with connection of  two databases in different systems.Let me explain clearly.

 I have one postgres 8.4  server running in  my system and another postgres server running in
my friend system

My requirement is whenever ,I do some insertions  in a table in my postgres server  the same  things should be replicated
in another postgres server.

These are the steps I followed
----------------------------------------------------------------------------------------------------
1.Creation of  table in  a database named "testA" in  one system say "sys1"

CREATE TABLE emp
(
  empname text NOT NULL,
  salary integer
);

2.Creation of  table in  a database named "testB" in  another  system say "sys2"

CREATE TABLE emp
(
  empname text NOT NULL,
  salary integer
);

3.Creation of a  Function and Trigger in database "testA" in "sys1"

  CREATE OR REPLACE FUNCTION process_emp_audit() RETURNS TRIGGER AS $emp_audit$
    BEGIN
       IF (TG_OP = 'INSERT') THEN
            SELECT * FROM dblink_exec('hostname=sys2ip dbname=testB  user=postgres password=postgres','INSERT   INTO                  emp NEW.*');
            RETURN NEW;
        END IF;
        RETURN NULL;
    END;
$emp_audit$ LANGUAGE plpgsql;


CREATE TRIGGER emp_audit
BEFORE INSERT ON emp
    FOR EACH ROW EXECUTE PROCEDURE process_emp_audit();

4.The error I got is

  ERROR:  syntax error at or near "NEW"
CONTEXT:  Error occurred on dblink connection named "unnamed": could not execute command.
SQL statement "SELECT * FROM dblink_exec('dbname=test9','INSERT INTO emp NEW.*')"
PL/pgSQL function "process_emp_audit" line 3 at SQL statement

********** Error **********

ERROR: syntax error at or near "NEW"
SQL state: 42601
Context: Error occurred on dblink connection named "unnamed": could not execute command.
SQL statement "SELECT * FROM dblink_exec('dbname=test9','INSERT INTO emp NEW.*')"
PL/pgSQL function "process_emp_audit" line 3 at SQL statement.

---------------------------------------------------------------------------------------------------------------------------

So,I request you for any kind of solution for this  problem.

Thanks&Regards,
venkat.




В списке pgsql-admin по дате отправления:

Предыдущее
От: "Kevin Grittner"
Дата:
Сообщение: Re: Snapshot and pg_hotbackup
Следующее
От: Wei Zheng
Дата:
Сообщение: Looking for real configuration data