<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Pobieranie danych we funkcji]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=505&amp;type=atom"/>
	<updated>2010-11-22T08:49:55Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=505</id>
		<entry>
			<title type="html"><![CDATA[Odp: Pobieranie danych we funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2278#p2278"/>
			<content type="html"><![CDATA[Mozesz tez skorzystac z opcji RETURNING przy wstawianiu danych i pobrac id

[url]http://www.postgresql.org/docs/current/interactive/sql-insert.html[/url]]]></content>
			<author>
				<name><![CDATA[6nom]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=971</uri>
			</author>
			<updated>2010-11-22T08:49:55Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2278#p2278</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Pobieranie danych we funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2277#p2277"/>
			<content type="html"><![CDATA[[quote]
Chyba ,że w podczas wywoływania każdej funkcji wywoływana jest transakcja.
[/quote]

jest]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-11-20T21:29:09Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2277#p2277</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Pobieranie danych we funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2276#p2276"/>
			<content type="html"><![CDATA[Witam

Piszę pewne funkcję w których dodaje dane do określonych tabel, przez dodanie danych do tych tabel generuje się klucz główny czyli id. Muszę też pobrać id dla tego rzędu który został dodany. W tym punkcie mam pytanie.

Mogę pobierać na dwa sposoby:

id = (SELECT currval('nazwa_sekwencji'));

lub też w ten sposób

id = (SELECT id FROM ........ WHERE ...... )

Chodzi mi o wydajność i spójność danych,jeżeli pobieram id po sekwencji to spójność danych może zostać naruszona jeżeli funkcja jest wywoływana dość często i gdy poprzednia nie skończyła się gdy następna wywołała się. Chyba ,że w podczas wywoływania każdej funkcji wywoływana jest tranzakcja.

Drugi sposób wydaje się nie zawodny ,ale jeżeli chodzi o szybkość to pierwszy jestę znacznie szybszy]]></content>
			<author>
				<name><![CDATA[Rogo]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1161</uri>
			</author>
			<updated>2010-11-20T14:06:51Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2276#p2276</id>
		</entry>
</feed>
