Lists: | Postg범퍼카 토토SQL |
---|
From: | "Ali Dereli" <derelinux(at)gmail(dot)com> |
---|---|
To: | pgsql-tr-genel(at)postgresql(dot)org |
Subject: | satırı klonlamak |
Date: | 2006-03-10 09:35:09 |
Message-ID: | dfbe28f10603100135k51e04fd1se93e92f337e9e359@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-tr-genel |
Merhaba;
20 küsür sutunlu bir tablom var.
bu tablodaki bir satırı klonlamak istiyorum. (serial tipli sutun hariç)
Bu tarz bi kolaylık varmıdır?
Saygılar.
From: | "Adnan DURSUN" <a_dursun(at)hotmail(dot)com> |
---|---|
To: | "Ali Dereli" <derelinux(at)gmail(dot)com>, <pgsql-tr-genel(at)postgresql(dot)org> |
Subject: | Re: [pgsql-tr-genel] satırı klonlamak |
Date: | 2006-03-10 09:52:47 |
Message-ID: | BAY106-DAV24EFDD7781CB5FC507E4C7FAED0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | Postg토토SQL : Postg토토SQL |
----- Original Message -----
From: Ali Dereli
To: pgsql-tr-genel(at)postgresql(dot)org
Sent: Friday, March 10, 2006 11:35 AM
Subject: [pgsql-tr-genel] satırı klonlamak
>Merhaba;
>20 küsür sutunlu bir tablom var.
>bu tablodaki bir satırı klonlamak istiyorum. (serial tipli sutun hariç)
>Bu tarz bi kolaylık varmıdır?
INSERT INTO <tablo> (<kolon listesi>)
SELECT <serial tip kolon hariç kolon listesi>
FROM <20 küsür sutunlu tablonuz>
WHERE unique_id_kolon = unique_value;
Hepsi bu...
Adnan DURSUN
ASRIN Bilişim Ltd.
From: | "Adnan DURSUN" <a_dursun(at)hotmail(dot)com> |
---|---|
To: | "Ali Dereli" <derelinux(at)gmail(dot)com>, <pgsql-tr-genel(at)postgresql(dot)org> |
Subject: | Re: [pgsql-tr-genel] satırı klonlamak |
Date: | 2006-03-10 11:28:45 |
Message-ID: | BAY106-DAV399842C7D69B037836363FAED0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | Postg토토 꽁 머니SQL |
----- Original Message -----
From: Ali Dereli
To: Adnan DURSUN
Sent: Friday, March 10, 2006 1:13 PM
Subject: Re: [pgsql-tr-genel] satırı klonlamak
Subject: [pgsql-tr-genel] satırı klonlamak
>Merhaba;
>Sanırım tam anlatamadım. Ben sutun isimlerini tek tek yazmamak için bu tarz bi çözüm arıyorum.
>Sutun isimlerini yazmıycam, serial tipler normal artıslarını yapacak, diger sutunlar aynen kopyalanacak.
Kolon isimlerini yazmassanız, bildiğiniz gibi "serial" alan da kopyalanır. Sonuçta 20 tane kolon ismini yazmak
çok sorun değil (kopyala-yapıştır). Ama başka bir ihtiyaçtan kaynaklanıyorsa, bizimle paylaşın, belki onun
için bir çözüm önerebiliriz.
İyi Çalışmalar
Adnan DURSUN
ASRIN Bilişim Ltd.
From: | Devrim GUNDUZ <devrim(at)commandprompt(dot)com> |
---|---|
To: | Adnan DURSUN <a_dursun(at)hotmail(dot)com> |
Cc: | Ali Dereli <derelinux(at)gmail(dot)com>, pgsql-tr-genel(at)postgresql(dot)org |
Subject: | Re: Re: [pgsql-tr-genel] satırı klonlamak |
Date: | 2006-03-10 11:33:44 |
Message-ID: | Pine.LNX.4.64.0603101331440.9939@evim.gunduz.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-tr-genel |
Merhaba,
On Fri, 10 Mar 2006, Adnan DURSUN wrote:
> >Sanrm tam anlatamadm. Ben sutun isimlerini tek tek yazmamak iin bu tarz bi zm aryorum.
> >Sutun isimlerini yazmycam, serial tipler normal artslarn yapacak, diger sutunlar aynen kopyalanacak.
>
> Kolon isimlerini yazmassanz, bildiiniz gibi "serial" alan da kopyalanr. Sonuta 20 tane kolon ismini yazmak
> ok sorun deil (kopyala-yaptr).
Simdi denemeden soyluyorum ama information_schema icinden o tablonun
kolonlarinin ismi tek seferde alinabilir diye dusunuyorum. Teker teker
yazmaya gerek kalmayabilir.
--
The PostgreSQL Company - Command Prompt, Inc. 1.503.667.4564
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Managed Services, Shared and Dedicated Hosting
Co-Authors: PL/php, plPerlNG - http://www.commandprompt.com/
From: | "Adnan DURSUN" <a_dursun(at)hotmail(dot)com> |
---|---|
To: | "Devrim GUNDUZ" <devrim(at)commandprompt(dot)com> |
Cc: | "Ali Dereli" <derelinux(at)gmail(dot)com>, <pgsql-tr-genel(at)postgresql(dot)org> |
Subject: | Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] satırı klonlamak |
Date: | 2006-03-10 11:56:30 |
Message-ID: | BAY106-DAV14FEE62CEDBD953C75A8FAFAED0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-tr-genel |
----- Original Message -----
>From: "Devrim GUNDUZ" <devrim(at)commandprompt(dot)com>
>To: "Adnan DURSUN" <a_dursun(at)hotmail(dot)com>
>Cc: "Ali Dereli" <derelinux(at)gmail(dot)com>; <pgsql-tr-genel(at)postgresql(dot)org>
>Sent: Friday, March 10, 2006 1:33 PM
>Subject: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] satırı klonlamak
>Merhaba,
>Simdi denemeden soyluyorum ama information_schema icinden o tablonun
>kolonlarinin ismi tek seferde alinabilir diye dusunuyorum. Teker teker
>yazmaya gerek kalmayabilir.
Kesinlikle doğru "information_schema.columns" isimli view bu bilgiyi
veriyor. Fakat
bu durumda, kodların yönetilebilirliğinde ve açıklığında sıkıntılar başlar.
Konuyu açan arkadaşımız
tabii ki bu konudaki kararını kendisi verecek...
İyi Çalışmalar
Adnan DURSUN
ASRIN Bilişim Ltd.
From: | "Esref Atak" <esrefatak(at)gmail(dot)com> |
---|---|
To: | PostgreSQL Türkiye -Genel <pgsql-tr-genel(at)postgresql(dot)org> |
Subject: | Re: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] satırı klonlamak |
Date: | 2006-03-10 12:54:02 |
Message-ID: | b0e445b30603100454u2caad8o9c45ea91b3acdf52@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | Postg젠 토토SQL : |
insert into cms_1_tr.ikizle
select * from cms_1_tr.ikizle
şeklinde kullanım mümkün biliyorsunuz. Yani, alan ismi belirtmezseniz, tüm
alanlar kopyalanmaya çalışılır. Böyle yaparsınız. Ayrıca, söz konusu tablo
için bir tetik oluşturursunuz. Bu tetik, ekleme işleminden sonra, yeni
kaydın kimlik/ID alanının değerini bir arttırıcıdan alır. Alanın türünü
değiştirmeniz gerekir tabii ki ve bir de arttırıcı oluşturmanız
gerekecektir. Böylece, alanların isimlerini belirtmek zorunda kalmasınız ve
ID alanlarında mükerrerlik sorunu da olmaz. Kayıtlarınız sorunsuz bir
şekilde kopyalanır. Eğer, kaydı kopyalama işlemini çok sıklıkla yapmanız
gerekiyorsa bu yöntemi kullanmayı tercih edebilirsiniz. Yok eğer, nadiren
kayıt kopyalayacaksanız, bence alanların isimlerini, daha önce diğer
arkadaşların önerdikleri yöntemi kullanarak teker-teker yazmalısınız.
Kopyalama SQL-INSERT ifadelerini bir kez yazdıktan sonra, ifadeyi atmayıp
saklayın sonra gerektiğinde kullanırsınız.
Diye düşünüyorum.
On 3/10/06, Adnan DURSUN <a_dursun(at)hotmail(dot)com> wrote:
>
> ----- Original Message -----
> >From: "Devrim GUNDUZ" <devrim(at)commandprompt(dot)com>
> >To: "Adnan DURSUN" <a_dursun(at)hotmail(dot)com>
> >Cc: "Ali Dereli" <derelinux(at)gmail(dot)com>; <pgsql-tr-genel(at)postgresql(dot)org>
> >Sent: Friday, March 10, 2006 1:33 PM
> >Subject: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] satırı klonlamak
>
>
>
> >Merhaba,
>
> >Simdi denemeden soyluyorum ama information_schema icinden o tablonun
> >kolonlarinin ismi tek seferde alinabilir diye dusunuyorum. Teker teker
> >yazmaya gerek kalmayabilir.
>
> Kesinlikle doğru "information_schema.columns" isimli view bu bilgiyi
> veriyor. Fakat
> bu durumda, kodların yönetilebilirliğinde ve açıklığında sıkıntılar
> başlar.
> Konuyu açan arkadaşımız
> tabii ki bu konudaki kararını kendisi verecek...
>
> İyi Çalışmalar
>
> Adnan DURSUN
> ASRIN Bilişim Ltd.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
--
Saygılar,
Eşref Atak
From: | Mustafa Yörükoğlu <Mustafa(at)Yorukoglu(dot)name(dot)tr> |
---|---|
To: | pgsql-tr-genel(at)postgresql(dot)org |
Subject: | Re: satırı klonlamak, |
Date: | 2006-03-10 13:30:44 |
Message-ID: | 44117F84.7010805@Yorukoglu.name.tr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | Postg범퍼카 토토SQL |
Bizim de ne zamandır ihtiyacımız vardı böle bir şeye (çözüme), sayenizde
oldu;
Umarım işinizi görür.
Sevgiler,
Mustafa
*************************** START ******************************************
CREATE OR REPLACE FUNCTION "public"."eem_clonerow" (varchar, varchar,
bigint, varchar []) RETURNS bigint AS
$body$
/*
v1.0
eem_clonerow(tablename::varchar,keyfield::varchar,keyvalue::bigint,ignoredfields::varchar[]);
örnek:
stock tablosundaki id alanının değeri 123 olan satırın id,price alanları
hariç
yeni bir kopyasını tabloya ekler ve yeni kayıdın id değerini geri döndürür.
select eem_clonerow('stock','id',123,ARRAY['id','price']);
veya
select eem_clonerow('stock','id',123,'{"id","price"}');
--------------------------------------------------------
$1: tablo adı (varchar)
$2: anahtar alanın adı (varchar)
$3: anahtar alanın değeri (bigint)
$4: gözardı edilecek alanlar (varchar[])
return: yeni kayıdın anahtar alanının değeri (bigint)
*/
declare fieldlist varchar;
declare query varchar;
declare fieldinfo record;
declare newid bigint;
begin
fieldlist:='';
/*Build the field list */
for fieldinfo in select column_name from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = $1 loop
if not (fieldinfo.column_name = any ($4)) then
if fieldlist='' then
fieldlist:=fieldinfo.column_name;
else
fieldlist:=fieldlist || ',' || fieldinfo.column_name;
end if;
end if;
end loop;
/*Build the insert query & execute */
query:='insert into ' || $1 || ' (' || fieldlist || ')' || '
select ' || fieldlist || ' from ' || $1 || ' where ' || $2::varchar ||
'=' || $3 || ';select lastval();';
execute query into newid;
return newid;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
*************************** END ******************************************
Ali Dereli wrote, On 10.03.2006 11:35:
> Merhaba;
>
> 20 küsür sutunlu bir tablom var.
> bu tablodaki bir satırı klonlamak istiyorum. (serial tipli sutun hariç)
> Bu tarz bi kolaylık varmıdır?
>
> Saygılar.