テーブルまたはビュー <relationName>
が見つかりません。 スキーマとカタログのスペルと正確性を確認します。
スキーマで名前を修飾しなかった場合は、current_schema() 出力を確認するか、名前を正しいスキーマとカタログで修飾します。
ドロップ時のエラーを許容するには、IF EXISTS DROP VIEW 使用するか、IF EXISTS を DROP TABLE します。
パラメーター
- relationName: 見つからない指定されたリレーションシップ (テーブルまたはビュー) の名前。
説明
永続化されたテーブルとビューは、 <catalog>.<schema>.<relation>
という 3 つの名前部分で構成されます。
名前の 3 つの部分の一部を指定しない場合でも、現在のカタログまたは現在のスキーマを使用して暗黙的に名前が完成します。
これは、パスを完全に指定する場合を除いて、ファイル システムの作業ディレクトリによって、どのファイルを表示できるかに与える影響に似ています。
一時ビューまたは共通テーブル式 (CTE) はセッションまたはクエリ内にのみ存在し、修飾しないでください。
テーブルまたはビューが見つからない最も一般的な理由は次のとおりです。
- オブジェクトは存在しません。
- オブジェクト名、スキーマ、またはカタログのスペルが間違っていました。
- オブジェクトが現在のスキーマに存在しません。
- ユーザーはオブジェクトにアクセスできないため、オブジェクトを表示できません。
緩和策
エラーの軽減策は、原因によって異なります。
テーブル名、ビュー名、スキーマ名、カタログ名のスペルが正しくありませんか?
スペル を修正します。
名前を完全に修飾しておらず、
VALUES current_schema()
の結果がテーブルまたはビューの修飾名と一致していませんか?スキーマとカタログを使用して
relationName
を明示的に修飾するか、USE SCHEMA
コマンドを発行して目的の暗黙的なスキーマを設定します。一時ビューを参照しましたが、以前のセッション、期限切れ、または別のセッションにありましたか?
CREATE TEMPORARY VIEW \<relationName\> …
を使用して一時ビューを再作成するか、永続的なビューを使用するように切り替えます。共通テーブル式 (CTE) を参照しましたが、範囲外になっていますか?
CTE の定義を最も外側のクエリに移動します。 これがステートメントの始まりであるため、ステートメント内のあらゆる場所で表示されます。
オブジェクトが存在する場合に備えて、"DROP TABLE" などの DDL ステートメントを発行しますか?
IF EXISTS
句を使用して ステートメントを発行します (例:DROP TABLE \<relationName\> IF EXISTS
)。オブジェクトが存在することはわかっていますが、
SHOW TABLE
で見ることはできませんか?許可されたテーブルへのアクセス権を取得するには、管理者に問い合わせてください。 これには、スキーマとカタログへのアクセスも含める必要があります。
テーブルまたはビューを解決できない理由は不明です。
名前解決の詳細については、テーブルとビューの解決 を参照してください。
例示
-- The table is located in othercat.someschema
> SELECT count(*) FROM t;
[TABLE_OR_VIEW_NOT_FOUND] The table or view `t` cannot be found.
> VALUES current_schema();
default
-- Change the current schema
> USE SCHEMA othercat.someschema;
> SELECT count(*) FROM T;
1
-- Alternatively qualify the table
> SELECT count(*) FROM othercat.someschema.t;
1
-- A reference to a CTE in the wrong scope:
> SELECT count(1) FROM (WITH v(c1) AS (VALUES (1)) VALUES(2)) AS t(c1), v;
[TABLE_OR_VIEW_NOT_FOUND] The table or view `v` cannot be found.
-- Move the CTE to top level
> WITH v(c1) AS (VALUES (1))
SELECT count(1) FROM VALUES(2) AS t(c1), v;
1
-- Dropping a non existing view
> DROP VIEW v;
[TABLE_OR_VIEW_NOT_FOUND] The table or view `v` cannot be found.
> DROP VIEW IF EXISTS v;