<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Numeracja sekwencji PostgreSQL]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=2259</link>
		<description><![CDATA[Najświeższe odpowiedzi w Numeracja sekwencji PostgreSQL.]]></description>
		<lastBuildDate>Wed, 08 Apr 2015 07:57:52 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5481#p5481</link>
			<description><![CDATA[Tak zauważyłem tą zależność i próbowałem wczoraj  przypisać wartość z sekwencji nr sprawy do nr upoważnienia ale jeszcze nie jestem biegły ze składni tego języka.

Aktualnie po zastosowaniu Twoich poprawek wygląda na to że wszystko jest ok. Temat można uznać za zamknięty.
Bardzo dziękuję za pomoc :)]]></description>
			<author><![CDATA[dummy@example.com (PablooD)]]></author>
			<pubDate>Wed, 08 Apr 2015 07:57:52 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5481#p5481</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5480#p5480</link>
			<description><![CDATA[Wszystko jest tak jak powinno być.
Pole nr_upowaznienia zmienia się zgodnie z sekwencją, która jest przyporządkowana do tego pola, ale użytkownik widzi pole nr_sprawy, które jest kontrolowane przez trigger z wykorzystaniem sekwencji kontrola_nr_sprawy_seq. Zauważ że nawet nieudany insert nie powoduje zmiany kolejności numeracji w polu nr_sprawy.

Teraz nie możesz zakładać, że wartość z pola nr_sprawy będzie odpowiadało polu nr_upowaznienia. 

Aby to poprawić popraw funkcje tak

CREATE OR REPLACE FUNCTION f_kontrola() RETURNS trigger AS
$BODY$
declare
nr integer;
begin
nr := nextval('kontrola_nr_sprawy_seq'::regclass);
update kontrola
   set nr_sprawy='WI.057.' || nr::text ||'.'|| extract ('year' from current_date)::text
       , nr_upowaznienia=nr
where nr_upowaznienia=new.nr_upowaznienia;
return null;
end;$BODY$
LANGUAGE plpgsql VOLATILE;]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Wed, 08 Apr 2015 06:40:09 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5480#p5480</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5479#p5479</link>
			<description><![CDATA[Nie mogłem sobie poradzić z funkcją format więc ją usunąłem i wstawiłem to:

CREATE SEQUENCE kontrola_nr_sprawy_seq START 1 CACHE 1;

select setval ('kontrola_nr_sprawy_seq'::regclass,(select COALESCE(max(nr_upowaznienia),0)+1 from kontrola));

CREATE OR REPLACE FUNCTION f_kontrola() RETURNS trigger AS
$BODY$begin
update kontrola
   set nr_sprawy='WI.057.' || nextval('kontrola_nr_sprawy_seq'::regclass)::text ||'.'|| extract ('year' from current_date)::text
where nr_upowaznienia=new.nr_upowaznienia;
return null;
end;$BODY$
LANGUAGE plpgsql VOLATILE;

ALTER TABLE kontrola ALTER COLUMN nr_sprawy DROP DEFAULT;

CREATE TRIGGER kontrola_tr AFTER INSERT ON kontrola FOR EACH ROW EXECUTE PROCEDURE f_kontrola();


Przy poprawnym wprowadzaniu danych wszystko się zapisuje ok, natomiast jeśli spowoduję błąd to próba zapisu przesunie licznik nr_upoważnienia i jeszcze tego nie potrafię przeskoczyć.]]></description>
			<author><![CDATA[dummy@example.com (PablooD)]]></author>
			<pubDate>Tue, 07 Apr 2015 10:14:05 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5479#p5479</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5478#p5478</link>
			<description><![CDATA[[url=https://www.dropbox.com/s/larvhjsf1673g40/Tabela%20kontrola.docx?dl=0]Link[/url]]]></description>
			<author><![CDATA[dummy@example.com (PablooD)]]></author>
			<pubDate>Tue, 07 Apr 2015 07:26:24 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5478#p5478</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5474#p5474</link>
			<description><![CDATA[wyślij mi wszystko co do tej pory zrobiłeś 
jak zbudowana jest tabela (polecenie create table), jak zbudowana jest funcja triggera i sam trigger (polecenie create trigger).

popatrzę i zobaczymy co nie działa]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Wed, 01 Apr 2015 15:14:53 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5474#p5474</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5473#p5473</link>
			<description><![CDATA[Błędy już się nie pojawiają, ale niestety wygląda na to że ten wyzwalacz nie działa bo nie zapisuje się nic do nr_sprawy , a dodatkowo jeśli użytkownik wpisze numer do kluczy obcych to i tak licznik sekwencji upoważnienia  przeskoczy a to zakładaliśmy na początku że nie będzie miało miejsca.]]></description>
			<author><![CDATA[dummy@example.com (PablooD)]]></author>
			<pubDate>Wed, 01 Apr 2015 12:26:09 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5473#p5473</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5472#p5472</link>
			<description><![CDATA[Sprawdz w PgAdminie jaki typ zwraca poniższe polecenie
SELECT 'WI.057.%s.%s',nextval('kontrola_nr_sprawy_seq'::regclass) 

Jeśli ten typ jest inny niż text to w funksji format jako pierwszy parametr wpisz:
 'WI.057.%s.%s',nextval('kontrola_nr_sprawy_seq'::regclass)::text

poczytaj dokumentacje funkcji format tam wszystko jest napisane]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Mon, 30 Mar 2015 12:43:14 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5472#p5472</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5470#p5470</link>
			<description><![CDATA[W tym przypadku rozumiem że nie pasuje mu typ parametru.? To chodzi o zwracany parametr czy samą zmienna nr_sprawy? Można to jakoś odgórnie ustawić deklaracji funkcji?]]></description>
			<author><![CDATA[dummy@example.com (PablooD)]]></author>
			<pubDate>Fri, 27 Mar 2015 13:09:38 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5470#p5470</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5469#p5469</link>
			<description><![CDATA[Kolejny błąd :)

Stan SQL: 42883

ERROR: function format("unknown", bigint, double precision) does not exist
  Wskazówka: No function matches the given name and argument types. You may need to add explicit type casts.
  Gdzie: SQL statement "update kontrola set nr_sprawy=format('WI.057.%s.%s',nextval('kontrola_nr_sprawy_seq'::regclass) ,extract ('year' from current_date)) where nr_upowaznienia= $1 "
PL/pgSQL function "f_kontrola" line 2 at SQL statement]]></description>
			<author><![CDATA[dummy@example.com (PablooD)]]></author>
			<pubDate>Fri, 27 Mar 2015 12:35:18 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5469#p5469</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5468#p5468</link>
			<description><![CDATA[Ok dzięki za linki. Poczytam.
Ustawiłem wszystko wg Twoich instrukcji ale pojawił się kolejny błąd podczas dodawanie rekordu.
Stan SQL: 23502

ERROR: null value in column "nr_upowaznienia" violates not-null constraint

Klienta do bazy danych mam wykonanego w pakiecie Libre Office. Widocznie po tych zmianach nie wykonuje poprawnie polecenia insert. Wiele rzeczy w tym pakiecie wykonuje się za pomocą kreatora i póki co nie wiem gdzie poprawić ten błąd i szukam rozwiązania w google :)]]></description>
			<author><![CDATA[dummy@example.com (PablooD)]]></author>
			<pubDate>Fri, 27 Mar 2015 08:36:13 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5468#p5468</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5462#p5462</link>
			<description><![CDATA[Napisz czy wszystko działa tak jak chciałeś?

Co do LEAKPROOF to do końca tego jeszcze nie rozgryzłem poniżej opisy działania tej opcji
[url]https://wiki.postgresql.org/wiki/Making_security_barrier_views_automatically_updatable[/url]
[url]http://hemming-in.rssing.com/chan-2212310/all_p112.html[/url]]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Thu, 12 Mar 2015 08:04:07 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5462#p5462</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5459#p5459</link>
			<description><![CDATA[ok poszło, ten parametr miał na celu nie wyświetlanie błędów przez funkcję?]]></description>
			<author><![CDATA[dummy@example.com (PablooD)]]></author>
			<pubDate>Wed, 11 Mar 2015 08:15:36 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5459#p5459</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5458#p5458</link>
			<description><![CDATA[z definicji funkcji usuń "NOT LEAKPROOF"]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Tue, 10 Mar 2015 18:35:06 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5458#p5458</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5457#p5457</link>
			<description><![CDATA[Język udało się zainicjować. Teraz pojawia się komunikat że jest błąd składni:

ERROR:  syntax error at or near "NOT"
LINE 15: LANGUAGE plpgsql VOLATILE NOT LEAKPROOF;
                                   ^


********** Błąd **********

ERROR: syntax error at or near "NOT"
Stan SQL:42601
Znak:472]]></description>
			<author><![CDATA[dummy@example.com (PablooD)]]></author>
			<pubDate>Tue, 10 Mar 2015 14:04:38 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5457#p5457</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Numeracja sekwencji PostgreSQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5454#p5454</link>
			<description><![CDATA[O ile pamiętam to w wersji 8.1 trzeba było język zainicjować.

Tu masz stronę z przykładami jak robić funkcje do triggerów [url]http://www.postgresql.org/docs/8.1/static/plpgsql-trigger.html[/url]]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Tue, 03 Mar 2015 17:12:12 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5454#p5454</guid>
		</item>
	</channel>
</rss>
