特筆すべき情報
- Windows 7 64 ビットでPostgresql 9.2を使用しています。Postgresql Web サイトが提供するインストーラーを使用してインストールされました。
- postgres として postgresデータベースにログインしています
- postgresユーザーの下にBryceTest スキーマを作成します
- 表示するように構成
search_path
します"brycetest, public"
この SQL は、pgAdmin-III が提供するクエリ ビルダーによって生成された場合、期待どおりに動作します。
SELECT "DummyDataMasterTable"."Dummy_PK",
"DummyDataMasterTable"."DummyName"
FROM "BryceTest"."DummyDataMasterTable";
しかし、これはそうではありません
SELECT DummyDataMasterTable.Dummy_PK,
DummyDataMasterTable.DummyName
FROM BryceTest.DummyDataMasterTable;
-------------------------------------------
ERROR: relation "dummydatamastertable" does not exist
LINE 4: FROM DummyDataMasterTable;
^
********** Error **********
ERROR: relation "dummydatamastertable" does not exist
SQL state: 42P01
Character: 101
FROM BryceTest.DummyDataMasterTable;
どちらでもない
SELECT
Dummy_PK,
DummyName
FROM DummyDataMasterTable;
-------------------------------
ERROR: relation "dummydatamastertable" does not exist
LINE 4: FROM DummyDataMasterTable; ^
********** Error **********
ERROR: relation "dummydatamastertable" does not exist
SQL state: 42P01
Character: 59
新しく作成したスキーマを最初に検索するようにスキーマを構成することで、完全修飾されたスキーマを持つ必要がなくなると思いますsearch_path
schemaName.tableName