<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - pętla po zwróconych rekordach]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=454&amp;type=atom"/>
	<updated>2010-06-17T18:16:12Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=454</id>
		<entry>
			<title type="html"><![CDATA[Odp: pętla po zwróconych rekordach]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2097#p2097"/>
			<content type="html"><![CDATA[?! cholera nic nie kumam :)]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-06-17T18:16:12Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2097#p2097</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: pętla po zwróconych rekordach]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2092#p2092"/>
			<content type="html"><![CDATA[W skrócie - muszę zakończyć rozpoczęte wpisy do których nie przyszły "normalnie"  informacje o końcu. Mam za to informację czy są aktualnie rozpoczęte wpisy z danej kategorii (są 4 kategorie) informacja ta przychodzi co np 10 min. Jeżeli przyjdzie informacja że nie powinno być wpisów danej kategorii a okaże się że są bo nie przyszła informacja o zakończeniu to muszę je zakończyć (wygenerować sztuczny wpis o zakończeniu, obliczyć czas trwania, wpisać do innej tabeli itp) i dopiero wtedy usunąć. Jest to wyjątkowa sytuacja którą muszę brać pod uwagę więc myślę że trigger sobie poradzi bez problemu. 
Dla for-a mam z funkcji zliczone rekordy po których muszę iterować tylko nie wiem jak to zrobić dla danego zestawu rekordów czyli np jest tabela 10 wpisów sprawdziłem że mam w niej 3 rekordy które muszę zmienić i później usunąć jest to np 2,4 i 7 rekord. Jak to zrobić?]]></content>
			<author>
				<name><![CDATA[WitekS]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=760</uri>
			</author>
			<updated>2010-06-16T05:46:28Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2092#p2092</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: pętla po zwróconych rekordach]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2091#p2091"/>
			<content type="html"><![CDATA[A nie możesz się przeiterować po tym selecie
[code]
for zmienna in 
SELECT 
  tabela2.kolumna1
FROM 
  schemat1.tabela1, 
  schemat2.tabela2
WHERE 
  tabela2.kolumna1 = tabela1.kolumna1 AND
  tabela1.kolumna2 = 1
loop
<wstaw wiersze>
<usun wiersze>
end loop;
[/code]
A tak swoją drogą to ten trigger bedzie nieźle rzeźbił, na pewno tego potrzebujesz? :)]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-06-16T05:05:45Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2091#p2091</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: pętla po zwróconych rekordach]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2090#p2090"/>
			<content type="html"><![CDATA[Wyzwalacz jest dość rozbudowany ale generalnie chodzi o to, że przy wpisaniu nowego rekordu albo po aktualizacji w tabeli np tabela3 sprawdzam które rekordy z tabeli np tabeli2 spełniają wymagane kryteria np. 
[code]
SELECT 
  tabela2.kolumna1
FROM 
  schemat1.tabela1, 
  schemat2.tabela2
WHERE 
  tabela2.kolumna1 = tabela1.kolumna1 AND
  tabela1.kolumna2 = 1;
[/code]
z tego zapytania mam zestaw (tablicę) pewnych wartości i na podstawie tych wartości muszę wykonać wpisy do innej tabeli i następnie usunąć rekordy dla których SELECT jak wyżej zwrócił mi wartości. Trudność (dla mnie) polega na tym że nie wiem jak wykorzystać zestaw zwróconych wyników. Gdyby w wyniku tego zapytania zwracana była jedna wartość to ok ale tu będzie tablica...
Optymalnie czyli możliwie wszystko za jednym razem w jednej pętli dla danego zwróconego zestawu wartości (rekordów) wykonać na podstawie wyników odpowiedni wpis do innej tabeli a następnie usunąć dany rekord i przejść do kolejnego i tak aż do końca zwróconego zestawu.]]></content>
			<author>
				<name><![CDATA[WitekS]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=760</uri>
			</author>
			<updated>2010-06-15T20:19:31Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2090#p2090</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: pętla po zwróconych rekordach]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2089#p2089"/>
			<content type="html"><![CDATA[Cholerka nic nie kumam, co chcesz optymalizować tylko konkretnie.Co za trigger?]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-06-15T17:48:39Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2089#p2089</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[pętla po zwróconych rekordach]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2088#p2088"/>
			<content type="html"><![CDATA[witam
W wyzwalaczu sprawdzam które rekordy spełniają odpowiednie kryteria poleceniem które zwraca jakiś zestaw rekordów
[code]
SELECT 
  t_actual.idfk_diag
FROM 
  ustawienia.t_info_diag, 
  pojazdy.t_actual
WHERE 
  t_actual.idfk_diag = t_info_diag.idpk_info_diag AND
  t_info_diag.idfk_prio = 1;
[/code]
potrzebuję teraz wykonać odpowiednie działania na wszystkich rekordach których wartości zostały zwrócone tylko jak to optymalnie zrobić?]]></content>
			<author>
				<name><![CDATA[WitekS]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=760</uri>
			</author>
			<updated>2010-06-15T14:37:49Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2088#p2088</id>
		</entry>
</feed>
