Buenos dias, se presento este problema, quiero verificar que un campo diferente a la llave se a unico, ya que esta tabla debe ser unica por tres items pero independientes, debe ser unico por IdUser(Serial), la identificacion del usuario y el Login.

entonces cree esta Funcion para verificar el login esto ya que en la tabla cree un constrain unique para que verificara el tema identificacion.

Efectivamete hace la validacion, pero cuando creo uno nuevo reguistro que no existe me sale un error de tipo de dato de retorno no es el adeacuado, no se si alguien se apiade de mi y me pueda colaborar.

Muchas Gracias.

CREATE OR REPLACE FUNCTION p_newuser(int8, int8, "varchar", "varchar", int4, int4, int4, int4, "varchar", int8, "varchar", "varchar")
  RETURNS SETOF users AS
$BODY$
declare CANT INT;
BEGIN
 CANT:=0;
 select count(*) INTO CANT FROM users WHERE ulogin=$11;

 IF CANT=0 THEN
  INSERT INTO users (cedula,celular,email,fechanacimiento,idcliente,idestado,idroles,nombre,telefono,ulogin,upassword)
   values($1,$2,$3,$4,$5,$6,$7,$9,$10,$11,$12);
  SELECT * from users where iduser=lastval();
 ELSE
  RAISE EXCEPTION 'El login del Usuario ya Existe --> %',$11;
 END IF;
END
$BODY$
 LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION p_newuser(int8, int8, "varchar", "varchar", int4, int4, int4, int4, "varchar", int8, "varchar", "varchar") OWNER TO postgres;



Luis Mesias Corredor Castillo
Cel 3108580241