OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

スキーマ修飾を省略する方法

公開日:
更新日:
基本操作
#スキーマ

Verticaでは、テーブルアクセス時のスキーマ名を省略した場合に、自動選択されるスキーマをSEARCH_PATHで管理しています。

スキーマ修飾の優先順を確認する方法

Verticaにログイン後、以下のコマンドで、自動で修飾されるスキーマの優先順を確認することができます。

構文

SHOW SEARCH_PATH;

実行例

dbadmin=> SHOW SEARCH_PATH;
    name     |                      setting
-------------+---------------------------------------------------
 search_path | "$user", public, v_catalog, v_monitor, v_internal
(1 row)

デフォルトでは上記のように、ユーザー名のスキーマ、publicスキーマ、システムテーブル用スキーマ(v_catalogスキーマ、v_monitorスキーマ、v_internalスキーマ)の順で参照されます。
※ユーザー名と同名のスキーマは意図的に作成しないと存在しません。

スキーマ修飾の優先順を変更する方法

セッション単位の変更方法

セッション単位で自動修飾されるスキーマの優先順を変更する場合は、Verticaログイン後に下記コマンドを実行します。

構文

SET SEARCH_PATH TO スキーマ名1,スキーマ名2....; 

実行例

dbadmin=> SET SEARCH_PATH TO test_schema, "$user", public;
SET
dbadmin=> 
dbadmin=> SHOW SEARCH_PATH;
    name     |                            setting
-------------+----------------------------------------------------------------
 search_path | test_schema, "$user", public, v_catalog, v_monitor, v_internal
(1 row)

なお、 v_catalogスキーマ、v_monitorスキーマ、v_internalスキーマは常にSEARCH_PATHに含まれる仕様のため、上記コマンド実行時に省略することができます。

ユーザー単位(永続的)の変更方法

ユーザー単位で永続的に自動修飾されるスキーマの優先順を変更する場合は、Verticaログイン後に下記コマンドを実行します。

構文

ALTER USER ユーザ名 SEARCH_PATH スキーマ名1,スキーマ名2,....; 

実行例

dbadmin=> ALTER USER dbadmin SEARCH_PATH test_schema, "$user", public;
ALTER USER
dbadmin=> 

-- Verticaに再ログイン

dbadmin=> SHOW SEARCH_PATH;
    name     |                            setting
-------------+----------------------------------------------------------------
 search_path | test_schema, "$user", public, v_catalog, v_monitor, v_internal
(1 row)

なお、 v_catalogスキーマ、v_monitorスキーマ、v_internalスキーマは常にSEARCH_PATHに含まれる仕様のため、上記コマンド実行時に省略することができます。

検証バージョンについて

この記事の内容はVertica 9.1で確認しています。