Olá pessoal,
voltei aqui depois de muito tempo e com uma questão que está me ‘apurrinhando’ a vida.
Estou desenvolvendo uma aplicação web com banco de dados PostgreSQL 9.1 e usando o Hibernate 3.
Para checar se um registro já está cadastrado (ex. já existe uma cidade para um estado)tive que fazer uma função e então chamar a função na Constraint Check.
Porém ao tentar executar um update ou insert a constraint não valida o check.
Alguém poderia me ajudar?
Segue o script
/**
* Validacao de Cidade Duplicada.
*/
CREATE OR REPLACE FUNCTION chk_cidade( estado_id bigint, nome_cid varchar(255))
RETURNS integer AS
$BODY$
DECLARE
retval int;
BEGIN
SELECT INTO retval(select count(*) from public.cidade
where ID_ESTADO = estado_id
and lower(rtrim(ltrim(nome))) like lower(rtrim(ltrim(nome_cid)))
);
return retval;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
ALTER TABLE Cidade ADD Constraint chk_cidade_duplicada
CHECK ( chk_cidade(id_estado, nome) < 2 );
Desde já muito obrigado pela ajuda