PHP PostgreSQL Transaction Kullanımı

From: Emre Hasegeli <hasegeli(at)aresbt(dot)com>
To: Salim SAKAL <salim(dot)sakal(at)gmail(dot)com>
Cc: Devrim GÜNDÜZ <devrim(at)gunduz(dot)org>, PostgreSQLTürkiyeGenelTartışmaListesi <pgsql-tr-genel(at)postgresql(dot)org>
Subject: PHP PostgreSQL Transaction Kullanımı
Date: 2010-09-06 20:39:53
Message-ID: AANLkTik5Y28hJtN4d7fm3hfq7+8zaDztsZ7w0g6tjXE+@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-tr-genel

Aşağıdaki örneğin yararlı olacağını sanıyorum:

> pg_query('BEGIN');
>
> pg_query('INSERT ...');
>
> try
> {
> ...
>
> pg_query('COMMIT');
> }
>
> catch(Exception $exception)
> {
> pg_query('ROLLBACK');
> }
>

Kalıcı bağlantı (*Persistent connection*) kullanıldığında *transaction*'ın
açık kalmasının ciddi sorunlar çıkaracağını da anımsatmak isterim.

---------- Forwarded message ----------
From: Devrim GÜNDÜZ <devrim(at)gunduz(dot)org>
Date: 2010/9/6
Subject: Re: [pgsql-tr-genel] PostgreSQL hakkında yardım lütfen
To: Salim SAKAL <salim(dot)sakal(at)gmail(dot)com>
Cc: pgsql-tr-genel(at)postgresql(dot)org

On Mon, 2010-09-06 at 22:35 +0300, Salim SAKAL wrote:
<kesildi>
> örnek: insert query'de bağlantı hatası olursa rollback, sorun yoksa
> commit...

Ben sorunuzu anlamadım: Bir PHP satırında connection kısmı başarısız
olursa tabii ki rollback olacaktır. Bir de özel olarak bir transaction
başlatmadığınızda PostgreSQL o işlemi commit eder (başarılı olursa
yani). İkinci ifadede ayrı bir transaction başlar.

Örnek:

BEGIN;
INSERT...
INSERT...
COMMIT;

ile

INSERT...
INSERT

farklıdır. İlkinde 1 tx, ikincisinde 2 tx vardır. O yüzden bulk insert
işlemlerinde tek tx kullanmak gerekir.

Bilmem yardımcı oldu mu bu yanıt?

> Şahsi kanaatimce açık kaynağın önündeki ciddi engellerden birisi de bu
> konu. MSSQL Server için aramış olsaydım binlerce döküman bulabilirdim.
> Oracle'a rakip PostgreSQL gibi özgür yazılım var ama döküman olmadığı
> için yaygınlaşmıyor.

Ben bu tarzı pek sevmiyorum. Üstteki sorunuzun yanıtı PostgreSQL'in 2500
sayfalık belgesinin içinde var örneğin.

Saygılar,
--
Devrim GÜNDÜZ
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
PostgreSQL RPM Repository: http://yum.pgrpms.org
Community: devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
http://www.gunduz.org Twitter: http://twitter.com/devrimgunduz

Browse pgsql-tr-genel by date

  From Date Subject
Next Message Namık Güngör 2010-10-20 10:18:47 Acil yardım
Previous Message Erhan Ekici 2010-09-06 20:21:04 Re: [pgsql-tr-genel] PostgreSQL hakkında yardım lütfen