Jump to content
Sign in to follow this  
A_T_C

Triggers - PostgreSQL

Recommended Posts

A_T_C

Boa tarde!

Estamos a tentar desenvolver um trigger que não permite que um registo c 2 atributos iguais estejam em 2 tabelas diferentes.

create function me_txt_update()
returns trigger
as
$$
declare var integer default 0;
begin
	select count(*) into var
	from respme
	where respme.numperg = new.numperg;
	if var > 0 then
		raise exception 'Erro';
	end if;
	return new;
end
$$
language plpgsql;

create trigger me_txt before insert on respme
for each row execute procedure me_txt_update();

Mas não está a ter o comportamento pretendido...

O q se tem q fazer para funcionar ? :wallbash:

Share this post


Link to post
Share on other sites
magician

O que ele está a fazer em concreto?

Já agora ter o mesmo registo em duas tabelas diferentes vai um bocado de encontra a filosofia do modelo relacional, não estarão a avaliar mal a questão ?


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites
A_T_C

Sim, por ir contra a filosofia do modelo é q implementámos um trigger. Supostamente está a verificar se a pergunta txt já tem lá o registo e se estiver, não permitir o registo na outra tabela (respme).

Mas não estou a perceber o q fazemos mal ... :bored:

Alguma ajuda?

Share this post


Link to post
Share on other sites
magician

Pera se estou a perceber é se o txt tiver o registo numa tabela não deixar fazer na outra é isso ?? lol meio confuso


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites
magician

Não seria mais fácil fazer um select antes do insert para validar?? Ou então reestruturar o modelo para não ter essa "ambiguidade".


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites
A_T_C

Seria de facto melhor, mas como isto é para um projecto, é nos feita esta imposição de triggers para resolver a questão ...  :bored:

E q não sabemos como resolver ...  :wallbash:

Share this post


Link to post
Share on other sites
magician

Não sei se é grande ajuda mas deixo aqui uma pequena doc sobre triggers em postgresql bastante explicativa

http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/Fun%C3%A7%C3%B5es_Definidas_pelo_Usu%C3%A1rio_e_Triggers/Triggers

Espero que ajude, infelizmente embora já tenha trabalhado com PL/SQL não tenho muita pratica e experiência na área


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.