Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
No se encuentra la tabla o vista <relationName>
. Compruebe la ortografía y corrección del esquema y el catálogo.
Si no ha calificado el nombre con un esquema, compruebe la salida de current_schema() o califique el nombre con el esquema y el catálogo correctos.
Para tolerar el error al eliminar, use DROP VIEW IF EXISTS o DROP TABLE IF EXISTS.
Parámetros
- relationName: nombre de la relación especificada (tabla o vista) que no se encuentra.
Explicación
Las tablas y vistas persistentes constan de tres partes de nombre: <catalog>.<schema>.<relation>
.
Si no especifica las tres partes del nombre, se completa implícitamente mediante el catálogo actual o el esquema actual.
Esto es similar a la forma en que el directorio de trabajo del sistema de archivos influye en qué archivos puede ver, a menos que especifique completamente la ruta de acceso.
Las vistas temporales o expresiones de tabla comunes (CTE) solo existen dentro de la sesión o consulta y nunca se deben calificar.
El motivo más común para no encontrar una tabla o vista es:
- El objeto simplemente no existe.
- Se ha escrito mal el nombre del objeto, el esquema o el catálogo.
- El objeto no se encuentra en el esquema actual.
- El usuario no tiene acceso al objeto y, por tanto, no puede verlo.
Mitigación
La mitigación del error depende de la causa:
¿Ha escrito la tabla o vista, el esquema o el nombre del catálogo incorrectamente?
Corrija la ortografía.
¿No ha especificado completamente el nombre y el resultado de
VALUES current_schema()
no coincide con el nombre calificado de la tabla o vista?Califica explícitamente el
relationName
con su esquema y catálogo, o emite un comandoUSE SCHEMA
para establecer el esquema implícito deseado.¿Ha hecho referencia a una vista temporal, pero estaba en una sesión anterior, expirada o diferente?
Vuelva a crear la vista temporal mediante
CREATE TEMPORARY VIEW \<relationName\> …
o cambie a mediante una vista permanente.¿Ha hecho referencia a una expresión de tabla común (CTE), pero está fuera del ámbito?
Mueva la definición del CTE a la consulta más externa. Es el principio de la declaración, por lo que es visible en todo dentro de la declaración.
¿Desea emitir una instrucción DDL, como "DROP TABLE" solo en caso de que exista el objeto?
Emita la instrucción mediante la cláusula
IF EXISTS
, como:DROP TABLE \<relationName\> IF EXISTS
.¿Sabe que el objeto existe, pero no puede verlo en
SHOW TABLE
?Póngase en contacto con el administrador para obtener acceso a la tabla concedida. Es posible que tenga que incluir también el acceso al esquema y al catálogo.
¿No está claro por qué no se puede resolver la tabla o vista?
Consulte Resolución de tabla y vista para obtener una descripción detallada de la resolución de nombres.
Ejemplos
-- 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;