IBM PureData System for Analytics, バージョン 7.1

シングル・スキーマ・システムでのクロスデータベースの使用例

以下の例では、IBM® Netezza® システムは PROD と DEV という 2 つのデータベースを持ち、各データベースには EMP という名前の 表があります。DEV データベースへの接続時には、以下のコマンドを使用して表 EMP のすべての行をリトリーブできます。

DEV.DBUSER(DBUSER)=> SELECT * FROM emp;
注: 各データベースには、データベースを作成したユーザー (この例ではユーザー DBUSER) の名前が付けられたデフォルトのスキーマがあります。以下の例では、DBUSER が DEV と PROD の両方のデータベースを作成したことが示されています。

DEV への接続中、PROD の EMP 表の行を選択するには、表の識別に database.schema.object name 形式を使用できます。例:

DEV.DBUSER(DBUSER)=>SELECT * FROM prod.dbuser.emp;
注: ベスト・プラクティスとして、PROD.DBUSER.EMP のような完全修飾オブジェクト名を使用してオブジェクトを参照することをお勧めします。シングル・スキーマの IBM Netezza 環境では、「ドット・ドット」表記 (PROD..EMP など) も使用できます。この場合、データベースはデフォルトを使用し、そのデータベースのスキーマのみを使用します。ただし、「ドット・ドット」表記をベスト・プラクティスとしては使用しないでください。単一スキーマ IBM Netezza 環境では、スキーマに指定した値は無視されます。無効なスキーマを指定した場合、システムはデフォルト・スキーマを使用し、エラーは表示されません。

クロスデータベースの INSERT、UPDATE、DELETE 文を使用して、別のリモート・データベースの表を変更することはできません。クロスデータベースの書き込み操作を実行しようとすると、エラー・メッセージが表示されます。例:

DEV.DBUSER(DBUSER)=>INSERT INTO prod..emp SELECT * FROM newusers;
Cross Database Access not supported for this type of command.

このタイプの照会では、SET CATALOG コマンドを使用して PROD データベースに変更することにより、照会をクロスデータベース SELECT 文に変更できます。例:

DEV.DBUSER(DBUSER)=>SET CATALOG PROD;
SET CATALOG
PROD.DBUSER(DBUSER)=>INSERT INTO emp SELECT * FROM dev.dbuser.newusers;

CREATE、ALTER、または DROP の各コマンドを使用して、現在のデータベース以外のデータベース内のオブジェクトを変更することはできません。もしこれらを実行しようとすると、エラー・メッセージが表示されます。次に例を示します。

DEV.DBUSER(DBUSER)=>CREATE SEQUENCE prod.dbuser.seq1;
Cross Database Access not supported for this type of command.


フィードバック | Copyright IBM Corporation 2014 | 最終更新日: 2014-02-28