From: | Pablo Braulio <brulics(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Función que no va. Novato en plpgsql |
Date: | 2006-05-20 11:06:12 |
Message-ID: | 200605201306.12543.brulics@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola a todos.
Estoy empezando a meterme con las funciones y triggers y como era de esperar
la primera ha fallado.
Lo que trato de hacer es que al insertarse un registro nuevo en la tabla
FICHEROS, se haga un INSERT a otra tabla ESTRUCT_FICHEROS. Cogiendo el campo
id de la primera tabla e insertandola en la segunda.
Esta es la estructura de las tablas:
\d ficheros
Tabla «public.ficheros»
Columna | Tipo | Modificadores
-------------+-----------------------+-------------------------------------------------------
id | integer | not null default
nextval('ficheros_id_seq'::regclass)
empresa | integer | not null
fichero | character varying(15) | not null
......
«ficheros_pkey» PRIMARY KEY, btree (id)
«rgpd_idx» btree (rgpd)
Restricciones de llave foránea:
«ficheros_empresa_fkey» FOREIGN KEY (empresa) REFERENCES empresas(id) ON
UPDATE CASCADE ON DELETE CASCADE
\d estruct_ficheros
Tabla «public.estruct_ficheros»
Columna | Tipo | Modificadores
-------------------+---------+---------------------------------------------------------------
id | integer | not null default
nextval('estruct_ficheros_id_seq'::regclass)
fichero | integer | not null
....
Restricciones de llave foránea:
«estruct_ficheros_fichero_fkey» FOREIGN KEY (fichero) REFERENCES
ficheros(id) ON UPDATE CASCADE ON DELETE CASCADE
Siguiendo el manual he hecho esta función.
CREATE OR REPLACE FUNCTION estructura_fichero() returns trigger as $$
begin
IF('TP_OP' = "INSERT") THEN
INSERT INTO ESTRUCT_FICHEROS(FICHERO) VALUES ('NEW.id');
RETURN NEW;
END IF;
END;
$$ language 'plpgsql';
CREATE TRIGGER estructura_fich AFTER INSERT ON FICHEROS FOR EACH ROW EXECUTE
PROCEDURE estructura_fichero();
Pero me muestra el siguiente error al hacer un insert a FICHEROS:
Query failed: ERROR: no existe la columna «tp_op» CONTEXT: sentencia
SQL: «SELECT (TP_OP = "INSERT")» PL/pgSQL function "estructura_fichero"
Soy muy inexperto en las funciones.
Espero me podáis ayudar.
Gracias.
--
Saludos.
Pablo.
From | Date | Subject | |
---|---|---|---|
Next Message | Fernando Aguada | 2006-05-20 11:29:17 | Sobre autovacuum |
Previous Message | Paolo Lopez | 2006-05-20 07:51:01 | Consulta sobre Postgres ante escenarios de caidas |