Search Postgresql Archives

How to know if an INSERT is done inside a function?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have a function, at the end I need to know if the INSERTS have run successfully or not.

Here is the function:

[code]
CREATE OR REPLACE FUNCTION "apr_insert_utilizador_ap"
(IN ppgroup_id int4,
IN ppip_address char,
IN ppusername varchar,
IN pppassword varchar,
IN ppemail varchar,
IN ppactive int4,
IN ppnome_real varchar,
IN pptelefone_pessoal varchar,
IN ppid_anunciante varchar,
OUT ppreturn_value int4
)    
RETURNS int4 AS
$BODY$
   
    DECLARE
    pGROUP_ID                 alias for $1;
    pIP_ADDRESS                alias for $2;
    pUSERNAME                alias for $3;
    pPASSWORD                alias for $4;
    pEMAIL                    alias for $5;
    pACTIVE                    alias for $6;
    pNOME_REAL                alias for $7;
    pTELEFONE_PESSOAL        alias for $8;
    pID_ANUNCIANTE            alias for $9;
    vID_UTILIZADOR_MAX            int4;
    vID_UTILIZADOR_NOVO            int4;
    vRETURN                        int4;
   
    BEGIN
   
    SELECT INTO vID_UTILIZADOR_MAX max(id) AS max_id FROM aau_utilizadores;
    vID_UTILIZADOR_NOVO := vID_UTILIZADOR_MAX + 1;
       
    INSERT INTO aau_utilizadores
    (id, group_id, ip_address, username, password, salt, email, activation_code,
    forgotten_password_code, remember_code, created_on, last_login, active)
    VALUES (vID_UTILIZADOR_NOVO, pGROUP_ID, pIP_ADDRESS, pUSERNAME, pPASSWORD, null,
    pEMAIL, null, null, null, NOW(), null, pACTIVE);
   
    INSERT INTO aau_metadata
    (id, user_id, nome_real, telefone_pessoal)
    VALUES (vID_UTILIZADOR_NOVO, vID_UTILIZADOR_NOVO, pNOME_REAL, pTELEFONE_PESSOAL);
 
    INSERT INTO aau_anunciantes
    (user_id, id_anunciante)
    VALUES (vID_UTILIZADOR_NOVO, pID_ANUNCIANTE);
   
    vRETURN := 1;
    ppreturn_value := vRETURN;
   
    END;
$BODY$
    LANGUAGE PLpgSQL
    RETURNS NULL ON NULL INPUT
    VOLATILE
    EXTERNAL SECURITY INVOKER;
[/code]

If the INSERTS are all done the function RETURNS "1", but how can I RETURN "0" if any error occurred?


Best Regards,
André.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux