../../image/benilogo.gifPostgreSQL について


PostgreSQL のvarchar 型について。
varchar型

   


実際に試してみればすぐわかる。
Varchar型の作成
beniya=# create table a_varchar1 ( a1 char(10) primary Key,
beniya(# a2 varchar);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'a_varchar1_pkey' for table 'a_varchar1'
CREATE
beniya=# insert into a_varchar1 values ( 'abc','abhjfui');
INSERT 22382 1
beniya=# insert into a_varchar1 values ( 'abd','void');
INSERT 22383 1
beniya=# insert into a_varchar1 values ( 'abe','jeccica lang');
INSERT 22384 1
beniya=# select * from a_varchar1;
     a1     |      a2
------------+--------------
 abc        | abhjfui
 abd        | void
 abe        | jeccica lang
(3 rows)
beniya=# select \d a_varchar1;
           Table "a_varchar1"
 Column |       Type        | Modifiers
--------+-------------------+-----------
 a1     | character(10)     | not null
 a2     | character varying |
Primary key: a_varchar1_pkey


   適当に varchar の
   テーブルを作る。





   charractor varying
   


beniya-# create table a_varchar2 (a1 char(10) primary key,
beniya(# a2 varchar(10), a3 varchar );
ERROR:  parser: parse error at or near "table"
beniya=# create table a_varchar2 (a1 char(10) primary key,
beniya(# a2 varchar(10), a3 varchar );
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'a_varchar2_pkey' for table 'a_varchar2'
CREATE
beniya=# select \d a_varchar2;
             Table "a_varchar2"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 a1     | character(10)         | not null
 a2     | character varying(10) |
 a3     | character varying     |
Primary key: a_varchar2_pkey

beniya-# insert into a_varchar2 values( 'aaa','afgjkljfiosjfosjds',
beniya(# 'nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn');
ERROR:  parser: parse error at or near "values"
beniya=# insert into a_varchar2 values( 'aaa','afgjkljfiosjfosjds',←ここは > varchar(10) なので ERROR 
beniya(# 'nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn');
ERROR:  value too long for type character varying(10)
beniya=# insert into a_varchar2 values( 'aaa','1234567890',
beniya(# 'nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn'); ←ここは > varchar なので OK!
INSERT 22391 1

char とだけすれば cahr(1) のことで varchar と数値がなければ いかなる長さの文字列も受け入れると書いてある。

  ODBC でみればどうなっているのだろうか?  テスト






 ・・・・




目次に戻る

Last Update 2006/05/30  16:21 JST

(C) Y.Kondou,2005,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから