sql >> データベース >  >> RDS >> PostgreSQL

postgresqlでスキーマを使用する

    探しているパラメータはsearch_pathです -クエリが検索するスキーマを一覧表示します。したがって、次のようなことができます。

    CREATE TABLE schema1.tt ...
    CREATE TABLE schema2.tt ...
    CREATE FUNCTION schema1.foo() ...
    CREATE FUNCTION schema2.foo() ...
    SET search_path = schema1, something_else;
    SELECT * FROM tt;        -- schema1.tt
    SELECT * FROM schema2.tt -- schema2.tt
    SELECT foo();            -- calls schema1.foo
    SELECT schema2.foo();    -- calls schema2.foo
    

    クエリのプランがfoo()の本体内に保存されると、予期しない結果が生じる可能性があることに注意してください。重複したテーブルを使用している場合は、plpgsql関数で参照されるテーブルのスキーマを常に明示的にリストすることをお勧めします。そうでない場合は、変更されたsearch_pathを使用して動作を確認するためのテストが実施されていることを確認してください。

    ああ-関数の本体にもsearch_pathを明示的に設定できます-詳細については、マニュアルのCREATEFUNCTIONリファレンスを参照してください。




    1. テーブルを作成できません-エラー1064(42000):SQL構文にエラーがあります

    2. MySQL5.7でデフォルトの「root」ユーザーの動作をリセットするにはどうすればよいですか。

    3. jdbcおよびoracleドライバーの操作中に結果セットが保存される場所

    4. PHP-データベースからマルチレベルの連想配列を構築します(dbから州で都市を並べ替えます)