From: | "N(dot) Can KIRIK" <can(at)epati(dot)com(dot)tr> |
---|---|
To: | Fırat Güleç <firat(dot)gulec(at)hepsiexpress(dot)com> |
Cc: | pgsql-tr-genel <pgsql-tr-genel(at)postgresql(dot)org> |
Subject: | Re: Bulk Update |
Date: | 2017-09-29 21:25:49 |
Message-ID: | CAJ1wP5keyH9+JTVOvWfAwL3LVM9YAnhAp8jf7vyE2OZ9pRQr5Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | Postg사설 토토 사이트SQL |
Merhabalar,
Bu gibi ihtiyaçlar geliştiğinde aşağıdaki gibi tek bir UPDATE ifadesi
çalıştırıyorum.
> *UPDATE* "tablo_1" *AS* t1
>
> *SET* "alan_1" *=* t2*.*"alan_1"
> *,*"alan_2" *=* t2*.*"alan_2"
>
> *FROM* "tablo_2" *AS* t2
>
> *WHERE* t1*.*"id" *=* t2*.*"ref_id"
> *;*
İyi çalışmalar.
*N. Can KIRIKePati Bilişim Teknolojilerihttp://www.epati.com.tr/
<http://www.epati.com.tr/>*
2017-09-29 10:03 GMT+03:00 Fırat Güleç <firat(dot)gulec(at)hepsiexpress(dot)com>:
> Merhabalar,
>
>
>
> Bir konuda yardımınız ihtiyacım var. Postgresql 9.5.8 versiyonunu
> kullanıyoruz. Bulk bir update yapmaya ihtiyacımız oldu, yaklaşık 4.5
> milyonluk bir kayıt. Oracle’da begin end’in arasına commit koyabiliyorduk.
> Fakat Postgresql’de bunu yapamadığımızı farkına vardık. 100 kayıt update
> ettikten sonra commit yapmak istiyoruz. Bu gibi ihtiyaçlar için
> Postgresql’de nasıl bir çözüm kullanıyorsunuz?
>
>
>
> İyi çalışmalar.
>
>
>
>
>
> Örnek kod:
>
>
> *DECLARE **c_delivery **RECORD*
> *; cur_rad CURSOR (**x_address_id **BIGINT**, **x_receiver_id **BIGINT**)
> FOR SELECT ****
> * FROM *
> *receiver_address*
> * WHERE *
> *receiver_id** = **x_receiver_id*
> *
> AND
> **address_id** = **x_address_id*
> *; **c_rad **RECORD*
>
> *;BEGIN FOR **c_delivery** IN SELECT ***** FROM **delivery** WHERE
> recipient_address_id is NULL LIMIT **p_record_cnt*
>
> * LOOP OPEN cur_rad(**c_delivery**.**receiver_address_id**,*
> *c_delivery**.**receiver_id*
> *); FETCH cur_rad INTO **c_rad*
> *; IF **c_rad*
>
> *.id IS NOT NULL THEN UPDATE *********** SET recipient_address_id
> = **c_rad**.id WHERE **id** = **c_delivery**.**id*
> *; UPDATE **************** SET recipient_address_id = **c_rad**.id
> WHERE **delivery_id** = **c_delivery**.**id*
>
>
>
> *; END IF; CLOSE cur_rad; END LOOP;END;*
>
>
>
>
>
> *FIRAT GÜLEÇ*
> Veritabanı Yöneticisi
> firat(dot)gulec(at)hepsiexpress(dot)com
>
>
>
> *M:* 0 532 210 57 18 <0532%20210%2057%2018>
> İnönü Mh. Mimar Sinan Cd. No:3 Güzeller Org.San.Bölg. GEBZE / KOCAELİ
> ------------------------------
>
> [image: Inline image 1]
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Erkan Durmuş | 2017-09-30 07:39:28 | Re: Bulk Update |
Previous Message | M.Atıf CEYLAN | 2017-09-29 20:58:16 | Re: Bulk Update |