From: | Fırat Güleç <firat(dot)gulec(at)hepsiexpress(dot)com> |
---|---|
To: | pgsql-tr-genel(at)postgresql(dot)org |
Subject: | Bulk Update |
Date: | 2017-09-29 07:03:02 |
Message-ID: | a8b4f5cc63e4c5ea15f0ed2a5e9a0e87@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
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
İ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 | M.Atıf CEYLAN | 2017-09-29 20:58:16 | Re: Bulk Update |
Previous Message | Fırat Güleç | 2017-08-17 19:48:24 | Re: Postgresql Hata |