PostgreSQL 9.1.1文書
前のページ | 巻戻し |  | 早送り | 次のページ

# CREATE FOREIGN TABLE

## 名前

CREATE FOREIGN TABLE -- 新しい外部テーブルを定義する

## 概要

    CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [
      { column_name data_type [ NULL | NOT NULL ] }
        [, ... ]
    ] )
      SERVER server_name
    [ OPTIONS ( option 'value' [, ... ] ) ]

## 説明

`CREATE FOREIGN TABLE`は現在のデータベース内に新しい外部テーブルを作成します。 このテーブルはコマンドを発行したユーザにより所有されます。

スキーマ名が指定された場合（例えば`CREATE FOREIGN TABLE myschema.mytable ...`）、テーブルは指定されたスキーマ内に作成されます。 さもなくば現在のスキーマ内に作成されます。 外部テーブルの名前は同じスキーマ内にある他の外部テーブル、テーブル、シーケンス、インデックス、ビューと異なるものでなければなりません。

`CREATE FOREIGN TABLE`はまた自動的に外部テーブルの１行に対応する複合型を表すデータ型を作成します。 したがって外部テーブルは同じスキーマ内の既存のデータ型の名前と同じものを持つことができません。

## パラメータ

`IF NOT EXISTS`

  同じ名前のリレーションがすでに存在していてもエラーとしません。 この場合注意が発せられます。 既存のリレーションが作成しようとしたものと何かしら似たものであることは保証されません。

`table_name`

  作成するテーブルの名前です（スキーマ修飾名でも可）。

`column_name`

  新しいテーブルで作成される列の名前です。

`data_type`

  列のデータ型です。 これには、配列指定子を含めることができます。 PostgreSQLでサポートされるデータ型の情報に関する詳細は第8章を参照してください。

`NOT NULL`

  その列がNULL値を持てないことを指定します。

`NULL`

  その列がNULL値を持てることを指定します。 これがデフォルトです。

  この句は非標準的なSQLデータベースとの互換性のためだけに提供されています。 新しいアプリケーションでこれを使用するのはお勧めしません。

`server_name`

  外部テーブル用の既存サーバの名前です。

`OPTIONS ( `option` '`value`' [, ...] )`

  新しい外部テーブルに関連するオプションです。 設定可能なオプションの名前と値は外部データラッパそれぞれに固有なものであり、外部データラッパの検証関数を用いて検証されます。 オプション名は一意でなければなりません。

## 例

`film_server`を用いて`films`外部テーブルを作成します。

    CREATE FOREIGN TABLE films (
        code        char(5) NOT NULL,
        title       varchar(40) NOT NULL,
        did         integer NOT NULL,
        date_prod   date,
        kind        varchar(10),
        len         interval hour to minute
    )
    SERVER film_server;

## 互換性

`CREATE FOREIGN TABLE`はおおよそ標準SQLに準拠します。 しかし`CREATE TABLE`とほとんど同様、`NULL`制約とゼロ列の外部テーブルが許されます。

## 関連項目

ALTER FOREIGN TABLE, DROP FOREIGN TABLE, CREATE TABLE, CREATE SERVER

前のページ | ホーム | 次のページ
CREATE FOREIGN DATA WRAPPER | 上に戻る | CREATE FUNCTION