色々なデータベースで、文字列の長さを指定する際に、その長さがバイトなのか、文字数なのか気にされる事が多いと思います。そこで、オープンソースのERP iDempiereで良く使用するPostgreSQLの文字列について調査及び研究し、その成果をまとめています。
基本的にPostgreSQLは、文字数を指定
試しに、iDempiereの組織マスタ(AD_Orgテーブル)に、業務的な組織の識別情報として10桁の文字列(Stringのリファレンス)のカラムを追加してみます。
カラム同期を実行すると、可変長文字列(標準名称:character varying(n) / 別名:varchar(n))としてカラムが追加されます。この"n"にPostgreSQLでは文字数が入り、今回は10文字分の可変長の文字列のカラムを追加した事になります。
iDempiereの標準入力画面
iDempiereの標準入力画面であるウィンドウでは、長さが10となっているので、画面上で10文字を超えて入力されないように制限されています。
HTMLのmaxlength属性で10文字の絞りが定義されています。
PostgreSQLの中
PostgreSQLに直接データを登録しても、10文字を超えて文字を入力しようとするとエラーになります。