Re: [pgsql-tr-genel] Hstore olarak saklanmış satırı tabloya eklemek

Lists: pgsql-tr-genel
From: Ege Sertçetin <sertcetin(at)itu(dot)edu(dot)tr>
To: Postgre Bulten <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Hstore olarak saklanmış satırı tabloya eklemek
Date: 2013-02-13 15:20:23
Message-ID: 511BAF37.8010504@itu.edu.tr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

Selamlar,

http://wiki.postgresql.org/wiki/Audit_trigger_91plus adresindeki audit
sistemini kullanıyorum. Silinmiş bir satırın kaydı audit tablosunda var.
Silinmeden önceki son veri, hstore olarak bir kolonda saklanmış. Bu
silinmiş satırı geri almak istiyorum. hstore verisini nasıl satır olarak
ekleyebileceğimi bulamadım.

İyi günler,
--
Ege Sertçetin

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster


From: "N(dot) Can KIRIK" <can(at)epati(dot)com(dot)tr>
To: Ege Sertçetin <sertcetin(at)itu(dot)edu(dot)tr>
Cc: Postgre Bulten <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: [pgsql-tr-genel] Hstore olarak saklanmış satırı tabloya eklemek
Date: 2013-02-13 16:17:55
Message-ID: CAJ1wP5nqMo4g0eZR=PPNUSm27tGhkiXwNZRBWXBb8a910sqbzw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

selam

PostgreSQL 9 ile hstore'a POPULATE_RECORD adında çok güzel bir fonksiyon
eklendi,

POPULATE_RECORD( TYPE, HSTORE )

hstore türündeki verdiğin datayı, type ile verdiğin kayıt türüne dönüştürüp
bir ROW veriyor.

bir örnek olsun daha iyi görelim.

CREATE TABLE test (
id int,
adi varchar
);

SELECT populate_record( NULL::"test", '"id"=>"1", "adi"=>"deneme"'::HSTORE );

bu bize hstore türündeki veriyi, test tablosu türünde bir row olarak
veriyor.

row türünde tek bir alan olduğu için bunu alanlara dağıtmamız lazım.

SELECT ( populate_record( NULL::"test", '"id"=>"1",
"adi"=>"deneme"'::HSTORE ) ).*;

şimdi gönül rahatlığı ile bu satırı tabloya ekleyebiliriz.

INSERT INTO "test" SELECT ( populate_record( NULL::"test", '"id"=>"1",
"adi"=>"deneme"'::HSTORE ) ).*;

kolay gelsin.

*N. Can KIRIK
ePati Bilişim Teknolojileri
http://www.epati.com.tr/*

2013/2/13 Ege Sertçetin <sertcetin(at)itu(dot)edu(dot)tr>

> Selamlar,
>
> http://wiki.postgresql.org/**wiki/Audit_trigger_91plus<http://wiki.postgresql.org/wiki/Audit_trigger_91plus>adresindeki audit sistemini kullanıyorum. Silinmiş bir satırın kaydı audit
> tablosunda var. Silinmeden önceki son veri, hstore olarak bir kolonda
> saklanmış. Bu silinmiş satırı geri almak istiyorum. hstore verisini nasıl
> satır olarak ekleyebileceğimi bulamadım.
>
> İyi günler,
> --
> Ege Sertçetin
>
>
> ---------------------------(**end of broadcast)--------------------**
> -------
> TIP 4: Don't 'kill -9' the postmaster
>


From: Ege Sertçetin <sertcetin(at)itu(dot)edu(dot)tr>
To: Postgre Bulten <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: Hstore olarak saklanmış satırı tabloya eklemek
Date: 2013-02-14 10:16:47
Message-ID: 511CB98F.3030209@itu.edu.tr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

POPULATE_RECORD fonksiyonunu bulmuştum ama ilk parametresini anlamadığım
için başarılı olamamışım. Anlatışınızla geri alma işini yapabildim,
teşekkür ederim :-)

Nedense postgres ile çalışırken öğrendiğim yeni şeyler beni çok
heyecanlandırıyor. Sanki yapılması mümkün olmayan şeyleri yapmış gibi
hissediyorum. Silinmiş satırları geri aldığım zaman bi heyecan doldu içim :D

--
Ege Sertçetin

On 13-02-2013 18:17, N. Can KIRIK wrote:
> selam
>
> PostgreSQL 9 ile hstore'a POPULATE_RECORD adında çok güzel bir fonksiyon
> eklendi,
>
> POPULATE_RECORD( TYPE, HSTORE )
>
> hstore türündeki verdiğin datayı, type ile verdiğin kayıt türüne
> dönüştürüp bir ROW veriyor.
>
> bir örnek olsun daha iyi görelim.
>
>
> CREATE TABLE test (
> id int,
> adi varchar
> );
>
>
> SELECT populate_record( NULL::"test", '"id"=>"1", "adi"=>"deneme"'::HSTORE );
>
> bu bize hstore türündeki veriyi, test tablosu türünde bir row olarak
> veriyor.
>
> row türünde tek bir alan olduğu için bunu alanlara dağıtmamız lazım.
>
>
> SELECT ( populate_record( NULL::"test", '"id"=>"1", "adi"=>"deneme"'::HSTORE ) ).*;
>
> şimdi gönül rahatlığı ile bu satırı tabloya ekleyebiliriz.
>
>
> INSERT INTO "test" SELECT ( populate_record( NULL::"test", '"id"=>"1", "adi"=>"deneme"'::HSTORE ) ).*;
>
>
> kolay gelsin.
>
> /N. Can KIRIK
> ePati Bilişim Teknolojileri
> http://www.epati.com.tr//
>
>
> 2013/2/13 Ege Sertçetin <sertcetin(at)itu(dot)edu(dot)tr <mailto:sertcetin(at)itu(dot)edu(dot)tr>>
>
> Selamlar,
>
> http://wiki.postgresql.org/__wiki/Audit_trigger_91plus
> <http://wiki.postgresql.org/wiki/Audit_trigger_91plus> adresindeki
> audit sistemini kullanıyorum. Silinmiş bir satırın kaydı audit
> tablosunda var. Silinmeden önceki son veri, hstore olarak bir
> kolonda saklanmış. Bu silinmiş satırı geri almak istiyorum. hstore
> verisini nasıl satır olarak ekleyebileceğimi bulamadım.
>
> İyi günler,
> --
> Ege Sertçetin
>
>
> ---------------------------(__end of
> broadcast)--------------------__-------
> TIP 4: Don't 'kill -9' the postmaster
>
>

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster