<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Postgresql transakcje]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=2174&amp;type=atom"/>
	<updated>2014-06-29T22:34:44Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=2174</id>
		<entry>
			<title type="html"><![CDATA[Odp: Postgresql transakcje]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5280#p5280"/>
			<content type="html"><![CDATA[[quote=HakunaMatata]Witam, może mi ktoś polecić jakiś tekst, kurs albo co innego dostępnego online na tema transakcji w postgresql.
[b]Muszę zrobić kilka transakcji do bazy którą zrobiłem[/b], lecz nie do końca wiem jak te całe transakcje działają.[/quote]

Wystarczy, że użyjesz dowolnego polecenia (UPDATE, INSERT, SELECT, etc.) na swojej bazie i już masz transakcję niejawną (ew. jawną jeśli klient "dołoży od siebie" blok BEGIN .. COMMIT), która odbywa się zawsze "pod spodem", to taki podstawowy "klocek", na którym są zbudowane bazy relacyjne jako takie.

Cytując z dokumentacji Postgresa, [url=http://www.postgresql.org/docs/current/static/tutorial-transactions.html]3.4. Transactions[/url]:

[quote]PostgreSQL actually treats every SQL statement as being executed within a transaction. If you do not issue a BEGIN command, then each individual statement has an implicit BEGIN and (if successful) COMMIT wrapped around it.[/quote]

Transakcje jawne bywają jednak przydatne w sytuacji, gdy potrzebujesz określić, że dany ciąg poleceń ma się wykonać w całości albo w ogóle, klasycznym przykładem jest tutaj transakcja bankowa, kiedy do wykonania całościowej operacji potrzebne jest jej rozbicie na kilka poleceń (zmiana salda klienta, obciążenie ATMu, etc.), dzięki transakcji możliwe staje się "spięcie" ze sobą tychże poleceń w monolit, który wykona się w całości albo wcale. To tak najprościej ujmując, resztę doczytasz w tym linku, do tego dorzuciłbym jeszcze zapoznać się z regułami ACID.]]></content>
			<author>
				<name><![CDATA[gszpetkowski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1223</uri>
			</author>
			<updated>2014-06-29T22:34:44Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5280#p5280</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Postgresql transakcje]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5279#p5279"/>
			<content type="html"><![CDATA[transakcja jest to jedno lub więcej poleceń sql (insert/update/delete/select) otoczonych przez "begin" przed, i "commit" na końcu (albo rollback).

Podstawową funkcją transakcji jest to, że gwarantują, że jeśli cokolwiek się nie uda, to nie uda się całość. Czyli jak masz w transakcji 10 insertów, i 8 nie zadziała (bo np. jest naruszenie unikatowości), to wszystko 10 zostanie cofniętych, a nie tylko ten jeden padnięty.

Więcej tu: [url]http://www.postgresql.org/docs/current/interactive/tutorial-transactions.html[/url]

Albo, jak masz jakieś konkretne pytania - to zadaj je tu.]]></content>
			<author>
				<name><![CDATA[depesz]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1564</uri>
			</author>
			<updated>2014-06-29T22:29:48Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5279#p5279</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Postgresql transakcje]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5278#p5278"/>
			<content type="html"><![CDATA[Witam, może mi ktoś polecić jakiś tekst, kurs albo co innego dostępnego online na tema transakcji w postgresql.
Muszę zrobić kilka transakcji do bazy którą zrobiłem, lecz nie do końca wiem jak te całe transakcje działają.]]></content>
			<author>
				<name><![CDATA[HakunaMatata]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1970</uri>
			</author>
			<updated>2014-06-29T15:08:21Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5278#p5278</id>
		</entry>
</feed>
