23/04/2008, 11:56
|
| | Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años, 5 meses Puntos: 0 | |
Error en funcion almacenada para insertar datos a tabla Wenas de nuevo!!!!
Tengo el siguiente inconveniente, cree una funcion que se supone me debe llenar los datos de una tabla, la funcion se almacena sin ningun error, pero el problema viene cuando la invoco para mandarle los datos por parametros.
La tabla es la siguiente:
tabla metactividad
idindicadoresespecificos int8 Primary Key
idactividad varchar
unidadmedida varchar
meta numeric
descripcion varchar
-------- Esta es la funcion---------
CREATE OR REPLACE FUNCTION anadir_metactividad(IN idindicadoresespecif INT, IN idactivid VARCHAR, IN unidadmed VARCHAR, IN meta NUMERIC, IN descripc VARCHAR) RETURNS void AS
$BODY$
BEGIN
INSERT INTO beneficiario VALUES (idindicadoresespecif, dactivid, unidadmed, meta, descripc);
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
/-----------------------
De esa forma la invoco
select anadir_metactividad(5,'666','777',121,'333')
FROM metactividad;
/----------------------
Y me salen estos errores:
ERROR: duplicate key violates unique constraint "metactividad_pkey"
CONTEXT: SQL statement "INSERT INTO metactividad VALUES ( $1 , $2 , $3 , $4 , $5 )"
PL/pgSQL function "anadir_metactividad" line 2 at SQL statement
Lo que me parece extraño es que me diga que intento duplicar la llave primaria, sabiendo que los datos que estoy mandando no existen en la tabla.
La funcion se supone debe recibir los datos de donde la invoco para de esta forma llenar la tabla, pero la verdad no se que estoy haciendo mal.
Gracias a todos!!!!!!!! |