[pgsql-jp: 26499] Re: selectした値で別テーブルを作りたい。

Hiroshi Saito saito @ inetrt.skcapi.co.jp
2002年 6月 27日 (木) 03:35:28 JST


さいとうです。
いまごろなにやってるんだか(^_^;)<-わたし

> いつもお世話になっています。またお知恵をお貸し頂ければ、幸いです。
>
> あるテーブルから任意の列をselectして、別のテーブルに挿入したいの
> です。その別テーブルは、また違った目的に使用されます。調べたとこ
> ろ「create table as」と「select into」が使えそうなのですが、テー
> ブルから任意に取り出した列をコピーするだけでなく、新しく作った
> tableには、元テーブルにない属性を持った列が必要なのです。「create
> table as」と「select into」では、同じテーブルになってしまいますよ
> ね。

※そうですね、全部選択すれば同じになります。?

>
> そこで以下の方法を、考えました。
>
> 1)「create table as」か「select into」でデータを取り出しテーブ
> ルを作り、その後、「alter table」でそのテーブルに新たな列を付け加
> える。
>
> 2)コツコツとプログラムでselectして、別テーブルにinsertする。
>
> しかしsql文一発で、綺麗に出来る方法がありませんでしょうか。具体的
> な例では、以下のようになります。
>
>  create table test1(aa int,bb timestamp);
>> create table tesst2(aa int,cc text);
>
> test1のaaだけを、test2のaaに移したいのです。何とぞよろしくお願い
> 致します。

※ちょっと用途が不明ですが、

CREATE TABLE tesst2 AS SELECT aa,CAST('' AS TEXT) as cc  FROM test1;
ではだめですか?






pgsql-jp メーリングリストの案内