estou trabalhando em um gatilho em PL / TCL que insere dados na tabela B no banco de dados B após a inserção na tabela A do banco de dadosA. ambas as bases de dados estão no mesmo servidor. Eu vim com isto:
CREATE OR REPLACE FUNCTION add_to_erp() RETURNS trigger AS $$
BEGIN
IF (TG_OP='INSERT') THEN
perform dblink_connect('dbname=oerp_test user=postgres password=abouali');
perform dblink_exec('insert into product_template(standard_price, list_price, name)
values
('||NEW.pricebuy||','||NEW.pricesell||','||NEW.name||');');
perform dblink_exec('insert into product_product(product_tmpl_id) values (currval(''product_template_id_seq''::regclass));');
perform dblink_disconnect();
END IF;
RETURN NEW;
END; $$
LANGUAGE 'plpgsql';
CREATE TRIGGER add_to_erp_trigger AFTER INSERT ON products FOR EACH ROW EXECUTE PROCEDURE
add_to_erp();
mas quando eu tento:
INSERT INTO products (id,reference,code,name,pricebuy,pricesell,category,taxcat) VALUES (3,3,3,'apple',12,24,'000','000');
eu recebo:
ERROR: column "apple" does not exist
se eu tentar em vez disso:
INSERT INTO products (id,reference,code,name,pricebuy,pricesell,category,taxcat) VALUES (3,3,3,'34',12,24,'000','000');
seu sucesso
Alguma idéia sobre o motivo?