From: | Volkan YAZICI <yazicivo(at)ttnet(dot)net(dot)tr> |
---|---|
To: | acemi nix <aceminix(at)gmail(dot)com> |
Cc: | pgsql-tr-genel(at)postgresql(dot)org |
Subject: | Re: oid hakkında |
Date: | 2006-02-28 19:25:43 |
Message-ID: | 20060228192543.GB159@alamut |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
On Feb 28 08:42, acemi nix wrote:
> peki mesela bi kayıt eklettik son eklenen kaydın sequenceli kolonunun
> değerini nasıl bulucaz
>
> 5 ali
> 6 mehmet
>
> var veritabanında. yeni kayıt ekledik diyelim currval() fonksiyonu ile bu
> değeri görebiliyoruz. ama ya
> biz kayıdı ekleyince arada bi kayıtdaha eklenmişse ve bizim currval sonra
> çalıştıysa ne olucak
Burada MVCC tarafından sağlanan transaction izolasyon seviyeleri
devreye giriyor. Konu hakkında ayrıntılı bilgi alabileceğiniz kaynakları
göstermeden önce basit bir şekilde konuyu izah etmeye çalışayım:
BEGIN;
INSERT INTO ...;
SELECT lastval();
COMMIT;
dediğinizi düşünelim. Burada lastval() fonksiyonu, sadece BEGIN
ifadesi kullanıldıktan hemen sonra COMMIT edilen değişiklikleri görecek
şekilde çalışır - öntanımlı olarak. Fakat transaction izolasyon
seviyesini değiştirerek o an COMMIT edilen (yani BEGIN'den itibaren
değil de SELECT sorgusundan hemen önceki) değerleri görebilecek şekilde
yapılandırılabilir.
Daha ayrıntılı bilgi için şu sayfaları inceleyebilirsiniz:
12. Concurrency Control
http://www.postgresql.org/docs/8.1/interactive/mvcc.html
9.12. Sequence Manipulation Functions
http://www.postgresql.org/docs/8.1/interactive/functions-sequence.html
İyi çalışmalar.
From | Date | Subject | |
---|---|---|---|
Next Message | Volkan YAZICI | 2006-02-28 19:32:26 | Re: Oracle'dan PostgreSQL'e |
Previous Message | acemi nix | 2006-02-28 18:42:48 | Re: oid hakkında |