<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Funkcja z SELECT , INSERT INTO oraz UPDATE]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=426</link>
		<description><![CDATA[Najświeższe odpowiedzi w Funkcja z SELECT , INSERT INTO oraz UPDATE.]]></description>
		<lastBuildDate>Thu, 15 Apr 2010 17:35:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Funkcja z SELECT , INSERT INTO oraz UPDATE]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=1966#p1966</link>
			<description><![CDATA[Prostsze niż myślisz (tylko musisz przetłumaczyć na swoja tabele i sekwencję)
[code]
update test set i=currval('test_i_seq') where <jakis  warunek>
[/code]]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Thu, 15 Apr 2010 17:35:40 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=1966#p1966</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja z SELECT , INSERT INTO oraz UPDATE]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=1962#p1962</link>
			<description><![CDATA[[h]Dzięki, śmiga aż miło[/h].


Teraz pojawiło się podobne pytanie, tyle ze tą druga funkcję nie jest INSERT INTO  a UPDATE:

Jak zrobić UPDATE wewnątrz funkcji gdy dany zmieniany parametr będzie się właśnie brał z SELECT currva('..._seq')?? 

Jak "skleić" UPDATE i SELECT??]]></description>
			<author><![CDATA[dummy@example.com (dfs)]]></author>
			<pubDate>Thu, 15 Apr 2010 13:59:37 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=1962#p1962</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja z SELECT , INSERT INTO oraz UPDATE]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=1961#p1961</link>
			<description><![CDATA[Skoro ma byc w sql to moze coś w takim stylu
[code]
create or replace function dodaj(int) returns void as
$$ 
insert into test1 values(default,$1);
insert into test2 select currval('test1_i_seq'), $1;
$$
language 'sql';
[/code]

Tylko najpierw musisz znaleźć jak sie nazywa sekwencja skojarzona z wykorzystanym przez ciebie typem serial (u mnie nazywa sie test1_i_seq).
Jest to pewnie nienajlepsze rozwiązanie ale w sql pewnie więcej nie wymyślisz. W ostateczności możesz wykorzystać rule albo trigger do automatycznej aktualizacji tabeli index_studenta]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Wed, 14 Apr 2010 12:45:24 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=1961#p1961</guid>
		</item>
		<item>
			<title><![CDATA[Funkcja z SELECT , INSERT INTO oraz UPDATE]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=1960#p1960</link>
			<description><![CDATA[Witam!

Mam zamiar jedną funkcją dodać rekordy do 2 tabel, problem w tym że w drugiej tabeli musi się znajdować autonumerowane ID (typ serial) z aktualnie dodawanej pierwszej tabeli.
[quote]

CREATE OR REPLACE FUNCTION dodaj_studenta(imie character varying, nazwisko character varying, "login" character varying, haslo character varying, numer_albumu numeric(10,0) )
  RETURNS void AS
$BODY$

INSERT INTO student
    VALUES ([b]DEFAULT[/b], $3, $4, $1, $2);   [i]//Owy DEFAULT jest typu [u]serial[/u][/i]
    
INSERT INTO index_studenta
    VALUES ([b]Tu powinna się znaleźć powyższa wartość DEFALUT[/b], $5);
    
$BODY$
  LANGUAGE 'sql' VOLATILE
  COST 100;
ALTER FUNCTION dodaj_studenta(character varying, character varying, character varying, character varying, numeric(10,0)) OWNER TO egzatester;
[/quote]

Jak to zrobić?? 

P.S. Może to tak wygląda ale owe dwie tabele z przykładu muszą być oddzielne.]]></description>
			<author><![CDATA[dummy@example.com (dfs)]]></author>
			<pubDate>Wed, 14 Apr 2010 12:09:03 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=1960#p1960</guid>
		</item>
	</channel>
</rss>
