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

CREATE FOREIGN TABLE

名前

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

概要

CREATE FOREIGN TABLE [ IF NOT EXISTS ] 

table_name

 ( [
    

column_name

 

data_type

 [ OPTIONS ( 

option

 '

value

' [, ... ] ) ] [ COLLATE 

collation

 ] [ 

column_constraint

 [ ... ] ]
    [, ... ]
] )
  SERVER 

server_name


[ OPTIONS ( 

option

 '

value

' [, ... ] ) ]



ここで

column_constraint

は以下の通りです。



[ CONSTRAINT 

constraint_name

 ]
{ NOT NULL |
  NULL |
  DEFAULT 

default_expr

 }

説明

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

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

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

外部テーブルを作成するためには、外部サーバに対する USAGE 権限とテーブルで使用される列の型すべてに対する USAGE 権限を持たなければなりません。

パラメータ

IF NOT EXISTS

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

table_name

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

column_name

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

data_type

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

NOT NULL

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

NULL

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

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

DEFAULT default_expr

DEFAULT 句は、 列定義の中に現れる、列に対するデフォルトデータ値を割り当てます。 値は任意の変数がない式(副問い合わせおよび、現在のテーブル内の他の列へのクロス参照は許されません)です。 デフォルト式のデータ型は列のデータ型と一致しなければなりません。

デフォルト式は、列に対する値指定がないすべての挿入操作で使用されます。 列に対するデフォルトがない場合、デフォルトはNULLです。

server_name

外部テーブル用に使用される既存の外部サーバの名前です。 外部サーバの詳細については CREATE SERVER を参照してください。

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

新しい外部テーブルまたはその列の1つに関連するオプションです。 設定可能なオプションの名前と値は外部データラッパそれぞれに固有なものであり、外部データラッパの検証関数を用いて検証されます。 重複するオプション名は許されません(しかしテーブルオプションと列おオプションでは同じ名前を持足せることはできます)。

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 制約とゼロ列の外部テーブルが許されます。 でフォルト値を指定する機能も PostgreSQL の拡張です。

関連項目

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

powered by SEO.CUG.NET