<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Porównywanie wartości przy operacji insert]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=1852&amp;type=atom"/>
	<updated>2013-06-09T11:38:54Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=1852</id>
		<entry>
			<title type="html"><![CDATA[Odp: Porównywanie wartości przy operacji insert]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=4570#p4570"/>
			<content type="html"><![CDATA[A czemu po prostu nie zrobisz:

create unique index xxx on seanse (data, godzina, sala)]]></content>
			<author>
				<name><![CDATA[depesz]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1564</uri>
			</author>
			<updated>2013-06-09T11:38:54Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=4570#p4570</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Porównywanie wartości przy operacji insert]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=4569#p4569"/>
			<content type="html"><![CDATA[Witam

W linku zamieszczam screen do tabeli w której chcę zrobić przeszukiwanie i porównanie przed operacją insert. 
[url=http://wyslijto.pl/plik/x7a2wy5e42]screen[/url]

Chcę, aby przy podawaniu wartości daty, godziny i sali trigger sprawdzał, czy takie same 3 wartości nie znajdują się już w tabeli w jakimś rekordzie. Jeśli się znajdują powinien o tym powiadomić i przerwać.

Napisałem taki trigger, ale przy sprawdzeniu i wpisaniu ponownie takich samych wartości dodaje mi je do tabeli, zamiast przerwać operację..:

Create function sprawdz() returns trigger as'
declare 
r seans%rowtype;
begin

for r in select data,godzina,sala from seanse loop
if NEW.data = r.data AND NEW.godzina = r.godzina AND NEW.sala = r.sala then
raise notice ''blad'' ;
return NULL;

else
return NEW;

end IF;
end LOOP;
end;
'language'plpgsql';


create trigger sprawdzT before insert on seanse for each row execute procedure sprawdz();


..coś takiego wykonuję, ale nie działa..

Proszę o jakieś wskazówki jak to rozwiązać.

Pozdrawiam]]></content>
			<author>
				<name><![CDATA[MOnte]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1592</uri>
			</author>
			<updated>2013-06-08T23:55:27Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=4569#p4569</id>
		</entry>
</feed>
