PostgreSQL は VARCHAR という文字データ型をサポートします。 このデータ型は、長さが制限された文字を格納するために使用されます。 PostgreSQLではvarchar(n)
と表現され、nは文字の長さの制限を表します。 nが指定されない場合、デフォルトは無制限の長さを持つvarchar
となります。 varchar(n)
で定義された列にそれ以上の長さの文字列を格納しようとすると、PostgreSQLはエラーを発生させることになります。 しかし、例外として、余分な文字が全て空白である場合、PostgreSQLは空白を最大長に切り詰めて文字列を格納します。 varcharデータ型に長さ指定子を指定する唯一の利点は、varchar(n)列に長い文字列を挿入しようとすると、PostgreSQLがチェックしてエラーを発行することです。
Syntax: variable_name VARCHAR(n)
例:
以下のコマンドを使用して、デモ用に新しいテーブル(char_testとします)を作成しましょう:
CREATE TABLE varchar_test ( id serial PRIMARY KEY, x VARCHAR (1), y VARCHAR(10));
次に、以下のコマンドを使用してchar_testテーブルに新しい行を挿入しましょう。
INSERT INTO varchar_test (x, y)VALUES ( 'Geeks', 'This is a test for char' );
この段階で、PostgreSQLはx列のデータ型がchar(1)であり、以下に示すように、この列に3文字の文字列を挿入しようとしたのでエラーが発生します:
ERROR: value too long for type character varying(1)
では、これを解決してみましょう。
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'This is a test for char' );
今度はy列の入力文字数が10文字以上なので、以下のように同じエラーが出ます:
ERROR: value too long for type character varying(10)
ではこちらも修正してみましょう。
INSERT INTO varchar_test (x, y)VALUES ( 'G', 'hello Geek' );
これで、文字データ型にうまく値を割り当てることができましたので、以下のコマンドを実行して確認してください:
SELECT * FROM varchar_test;
出力:
記事のタグ: