<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - [PostgreSQL] Obniżanie sekwencji]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=1477</link>
		<description><![CDATA[Najświeższe odpowiedzi w [PostgreSQL] Obniżanie sekwencji.]]></description>
		<lastBuildDate>Sun, 24 Mar 2013 21:16:25 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: [PostgreSQL] Obniżanie sekwencji]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4118#p4118</link>
			<description><![CDATA[Bardzo trudno jest zachować ciągłą numeracje jakiegoś pola w środowisku, do którego ma jednoczesny dostęp wielu użytkowników. Co miała by zrobić baza danych gdy zarejestruje w tym samym czasie dwa inserty od dwóch użytkowników. Oczywiście polecenie setval działa w trigger-ach i nie ma z tym żadnego problemu no chyba, że trafisz na w/w problem.
Proponuje takie rozwiązanie:

CREATE TABLE tab
(
 id serial primary key,
 nazwa varchar(50)
) 
WITH (OIDS = FALSE);
create unique index tab_ixu on tab (trim(upper(nazwa)));

a do wyświetlania tak by wyła ciągła numeracja w polu lp użyć poniższego select-a

select id,row_number() over(order by upper(nazwa)) as lp, nazwa from tab order by upper(nazwa)]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Sun, 24 Mar 2013 21:16:25 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4118#p4118</guid>
		</item>
		<item>
			<title><![CDATA[[PostgreSQL] Obniżanie sekwencji]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4115#p4115</link>
			<description><![CDATA[Witam wszystkich, przyszło mi zmierzyć się z następującym problemem, któremu nie mogę sprostać bardzo proszę o pomoc. Sprawa wygląda tak:

- utworzyłem tabele z polem ID oraz NAZWA
- przypisałem do niej sekwencje
- gdy próbuje dodać do niej rekord sekwencja jak najbardziej działa
- utworzyłem trigger, który sprawdza czy istnieje już w tabeli wartość pola NAZWA
- jeśli NAZWA nie istnieje wstawia kolejny rekord i jest ok
- jeśli rekord nie istnieje nie wstawia do tabeli nic lecz sekwencja się zwiększa (czego nie widać), dopiero po kolejnym wstawieniu do tabeli widać przeskok między ostatnim ID a tym nowym


próbowałem w funkcji triggera dopisać SETVAL('nazwa_seqwencji',moja wartość), ale nie chce to działać, proszę o pomoc...]]></description>
			<author><![CDATA[dummy@example.com (rydlik)]]></author>
			<pubDate>Sun, 24 Mar 2013 09:44:33 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4115#p4115</guid>
		</item>
	</channel>
</rss>
