[pgsql-jp: 37354] create table as でのvarchar型定義について

K.Taniguchi taniguchi @ graphic.co.jp
2006年 7月 19日 (水) 17:05:00 JST


taniguchi と申します。

テーブル table1
field1    integer
field3    text
field4    timestamp
field5    boolean

テーブル table1にはレコードが複数登録されています。
そのテーブル table1に対して field1とfield3の間に追加フィールド field2(型:varchar(10)) 
を足した
状態のテーブル table2を作るために以下のSQLを実行しているのですが、

CREATE TABLE table2 AS ( SELECT field1, ''::varchar(10) AS field2, field3, 
field4 FROM table1 )

PostgreSQL 7.3.2上にて以下の作業を行った場合 ...

テーブル table2
field1    integer
field2    character varying
field3    text
field4    timestamp
field5    boolean

field2の10文字という制限文字数がかかっていない状態で定義されてしまいます。


PostgreSQL 8.0.8上にて以下の作業を行った場合 ...

テーブル table2
field1    integer
field2    character varying(10)
field3    text
field4    timestamp
field5    boolean

field2の10文字という制限文字数がかかっている状態で定義されます。

以上のように
PostgreSQL 7.3.2でもPostgreSQL 8.0.8と同じ結果にするにはどのようにすればいいでしょうか?
SQLの書き方がまずいのか、7.xの仕様なのか、苦慮しております。
どうかご教授よろしくおねがいいたします。






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