SET CESTA

Platí na:zaškrtnuté ano Databricks SQL označeno ano Databricks Runtime 19 a výše

Cesta je uspořádaný seznam schémat, které Azure Databricks vyhledává, když dotaz nebo DML příkaz odkazuje na tabulku, pohled nebo funkci bez katalogu a kvalifikátoru schématu. Neomezeným subjektem DDL příkazu current_catalog.current_schemaje , není to vyhledávání cesty, takže CREATE TABLE t vytváří t v aktuálním schématu. Pro to, jak se cesta vztahuje na dotazy v DDL příkazech a na perzistentní pohledy, viz Tabulka a rozlišení zobrazení. Pro rutinní tělesa viz Funkce a procedurální řešení.

Syntax

SET PATH = path_element [, ...]

path_element
  { DEFAULT_PATH |
    SYSTEM_PATH |
    CURRENT_SCHEMA |
    PATH |
    schema_name }

Parameters

  • DEFAULT_PATH

    Klíčové slovo, které se rozšiřuje na konfigurační parametr PATH , což je výchozí pracovní prostor, který nové relace dědí. Pokud parametr nebyl přepsán, rozšíření je .system.session, system.builtin, system.ai, CURRENT_SCHEMA

  • SYSTEM_PATH

    Klíčové slovo, které se rozšiřuje na schémata poskytovaná systémem: system.builtin, system.ai.

  • CURRENT_SCHEMA

    Virtuální reference schématu, která se v čase používání vyřeší na aktuální katalog a aktuální schéma (current_catalog().current_schema()). Rozšíření navazuje na změny provedené během USE CATALOGUSE SCHEMA a během sezení.

  • CESTA

    Klíčové slovo, které se rozšiřuje na aktuální cestu relace. Použijte ho k prodloužení cesty, aniž byste znovu vyslovovali její obsah.

  • schema_name

    Je vyžadován dvoudílný název (catalog.schema). Jména s více než dvěma částmi jsou povolena. Jednočlenné jméno vyvolává INVALID_SQL_PATH_SCHEMA_REFERENCE.

    Katalog a schéma nemusí existovat v době, kdy spusťujete SET PATH. Rozlišení jmen přeskočí chybějící položky a pokračuje dalším prvkem cesty.

Description

Následující pravidla určují, které prvky SET PATH cesty přijímají a jak výsledná cesta ovlivňuje rozlišení jmen.

  • Duplicity: Duplikátní prvky cesty nejsou povoleny. Po rozšíření klíčových slov se duplikáty zvyšují DUPLICATE_SQL_PATH_ENTRY.
  • Schémata systému: system.builtin a system.ai obsahují vestavěné skalární, tabulkové a AI funkce. system.session Uchovává objekty zaměřené na relaci, jako jsou dočasné proměnné, dočasné funkce a dočasné pohledy. Vynechat system.builtin se mimo trasu se obecně nedoporučuje.
  • Vynechané schémata: Neomezená jména řeší pouze schémata na cestě. Pokud vynecháte CURRENT_SCHEMA, kvalifikujte trvalé objekty v aktuálním schématu. Pokud vynecháte system.builtin nebo system.ai, kvalifikujete tyto funkce, například system.builtin.abs. Pokud vynecháte system.session, neomezené dočasné pohledy, dočasné funkce a relační proměnné se nenajdou.
  • Pohledy a rutiny: Perzistentní pohledy, SQL uživatelem definované funkce a SQL SECURITY DEFINER procedury zachytávají cestu v a CREATE řeší neomezená jména ve svých tělech proti této zachycené cestě, nikoli podle relační cesty vyvolávače. Postup vynechává SQL SECURITY DEFINERsystem.session zachycenou cestu. Procedura SQL SECURITY INVOKER využívá živou cestu volajícího. Viz Zajatá cesta.
  • Kontrola cesty: SET PATH; nevytiskne cestu. Použijte current_path.

Examples

Spusť následující příkazy v pořadí, protože pozdější věty navazují na cestu, kterou nastavily ty předchozí.

-- Restore the workspace default.
> SET PATH = DEFAULT_PATH;
> SELECT current_path();
  system.session,system.builtin,system.ai,main.default

-- Restrict the PATH to only the system-provided schemas.
> SET PATH = SYSTEM_PATH;
> SELECT current_path();
  system.builtin,system.ai

-- Append a schema to the existing PATH without restating it.
> SET PATH = PATH, libraries.pgsql;
> SELECT current_path();
  system.builtin,system.ai,libraries.pgsql

-- Put the current schema ahead of the system schemas so that user-defined
-- functions shadow built-in functions of the same name.
> SET PATH = CURRENT_SCHEMA, PATH;
> SELECT current_path();
  main.default,system.builtin,system.ai,libraries.pgsql

Následující tvrzení selhávají a nemění cestu.

-- A single-part schema name is rejected.
> SET PATH = my_schema;
  [INVALID_SQL_PATH_SCHEMA_REFERENCE]

-- A duplicate path element raises an error after expansion.
> SET PATH = SYSTEM_PATH, system.builtin;
  [DUPLICATE_SQL_PATH_ENTRY]