無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

5.2. デフォルト値

列にはデフォルトの値を割り当てることができます。 新しく作成された行のいくつかの列に値が指定されていない場合、そうした空欄にはそれぞれの列のデフォルト値が入ります。 データ操作コマンドを使用して、列を(どのような値かを把握する必要なく)デフォルト値に設定するように明示的に要求することもできます。 (データ操作コマンドの詳細については 第6章 を参照してください。)

明示的に宣言されたデフォルト値がない場合は、デフォルト値はNULL値になります。 NULL値は不明のデータを表すものとみなすことができるので、通常はこの方法で問題ありません。

テーブル定義では、デフォルト値は列データ型の後に列挙されています。 例を示します。

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric 
DEFAULT 9.99

);

デフォルト値を式にすることが可能で、それはデフォルト値が挿入される時はいつでも(テーブルが作成されたときでは ありません )評価されます。よくある例として、 timestamp 列が挿入時の時刻に設定されるように、その列はデフォルトの CURRENT_TIMESTAMP を持つことができます。もう1つの例としては、各行に "通番" を割り振る場合です。 PostgreSQL では、典型的に以下のように記述することにより生成されます。

CREATE TABLE products (
    product_no integer 
DEFAULT nextval('products_product_no_seq')
,
    ...
);

ここで、 nextval() 関数が、 シーケンスオブジェクト から連続した値を生成します( 項9.16 を参照してください)。特に省略した形として以下のようにも記述できます。

CREATE TABLE products (
    product_no 
SERIAL
,
    ...
);

省略形である SERIAL 項8.1.4 で詳しく述べられています。


powered by SEO.CUG.NET