<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - SELECT CASE UPDATE/INSERT]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=511</link>
		<description><![CDATA[Najświeższe odpowiedzi w SELECT CASE UPDATE/INSERT.]]></description>
		<lastBuildDate>Tue, 07 Dec 2010 20:04:25 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: SELECT CASE UPDATE/INSERT]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2303#p2303</link>
			<description><![CDATA[dzięki]]></description>
			<author><![CDATA[dummy@example.com (Rogo)]]></author>
			<pubDate>Tue, 07 Dec 2010 20:04:25 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2303#p2303</guid>
		</item>
		<item>
			<title><![CDATA[Odp: SELECT CASE UPDATE/INSERT]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2302#p2302</link>
			<description><![CDATA[No to bez funkcji się nie da ale .. wystarczy sobie utworzyć taką uniwersalną funkcję
[code]
create function execute(text) returns void as 
$$
begin 
execute $1;
end;
$$ 
language plpgsql; 
[/code]
i uzyć jej w tym case
[code]
SELECT CASE
   WHEN (SELECT id FROM .........) IS NULL THEN
      execute('INSERT ...............')
   WHEN (SELECT id_book ................) IS NOT NULL THEN     
      execute('UPDATE ................')
END
[/code]
Co lepsze argument tej funkcji może być dynamiczny, generowany w locie na podstawie zawartości.]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Tue, 07 Dec 2010 18:41:44 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2302#p2302</guid>
		</item>
		<item>
			<title><![CDATA[Odp: SELECT CASE UPDATE/INSERT]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2301#p2301</link>
			<description><![CDATA[tak
gdy bym chciał użyć funkcji zrobił bym konstrukcje IF ELSE, jednak najlepiej jak by to było w zapytaniu]]></description>
			<author><![CDATA[dummy@example.com (Rogo)]]></author>
			<pubDate>Tue, 07 Dec 2010 08:30:06 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2301#p2301</guid>
		</item>
		<item>
			<title><![CDATA[Odp: SELECT CASE UPDATE/INSERT]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2300#p2300</link>
			<description><![CDATA[Nie wiem czy rozumiem ale chcesz w zależności od tego czy jakieś zapytanie zwraca wynik wykonać update lub insert?]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Mon, 06 Dec 2010 18:51:28 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2300#p2300</guid>
		</item>
		<item>
			<title><![CDATA[SELECT CASE UPDATE/INSERT]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2299#p2299</link>
			<description><![CDATA[Witam

Próbuje stworzyć zapytanie które pod określonym warunkiem wywoła UPDATE lub INSERT

SELECT CASE 
   WHEN (SELECT id FROM .........) IS NULL THEN
      (INSERT ...............) 
   WHEN (SELECT id_book ................) IS NOT NULL THEN      
      (UPDATE ................') 
END

Jednak bez powodzenia, wskazywany jest błąd w składni.
ERROR:  syntax error at or near nazwa_tabeli

Czy jest to wykonalne, bo kiedyś słyszałem ,że w PostgreSQL nie da się tego zrobić.
A jeśli się nie da to prosiłbym o podobny lub zbliżony sposób.]]></description>
			<author><![CDATA[dummy@example.com (Rogo)]]></author>
			<pubDate>Mon, 06 Dec 2010 17:42:00 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2299#p2299</guid>
		</item>
	</channel>
</rss>
