【PostgreSQL-0010】PostgreSQLの文字列の長さ指定について

色々なデータベースで、文字列の長さを指定する際に、その長さがバイトなのか、文字数なのか気にされる事が多いと思います。そこで、オープンソースのERP iDempiereで良く使用するPostgreSQLの文字列について調査及び研究し、その成果をまとめています。

基本的にPostgreSQLは、文字数を指定

 試しに、iDempiereの組織マスタ(AD_Orgテーブル)に、業務的な組織の識別情報として10桁の文字列(Stringのリファレンス)のカラムを追加してみます。

リファレンスをStringにして長さを10に指定。
リファレンスをStringにして長さを10に指定。

 カラム同期を実行すると、可変長文字列(標準名称:character varying(n) / 別名:varchar(n))としてカラムが追加されます。この"n"にPostgreSQLでは文字数が入り、今回は10文字分の可変長の文字列のカラムを追加した事になります。

カラム同期
カラム同期

iDempiereの標準入力画面

 iDempiereの標準入力画面であるウィンドウでは、長さが10となっているので、画面上で10文字を超えて入力されないように制限されています。

10文字以上入力できません。
10文字以上入力できません。

 HTMLのmaxlength属性で10文字の絞りが定義されています。

maxlength属性
maxlength属性

PostgreSQLの中

 PostgreSQLに直接データを登録しても、10文字を超えて文字を入力しようとするとエラーになります。

PostgreSQLの中身
PostgreSQLの中身

参考サイト