SET ŚCIEŻKA

Dotyczy do:zaznaczyć tak, Databricks SQL oznaczony tak, Databricks Runtime 19 i wyższe

Ścieżka to uporządkowana lista schematów, które Azure Databricks przeszukuje, gdy zapytanie lub polecenie DML odnosi się do tabeli, widoku lub funkcji bez filtratora katalogu i schematu. Niezastrzeżonym podmiotem instrukcji current_catalog.current_schemaDDL jest , a nie wyszukiwaniem ścieżki, więc CREATE TABLE t tworzy t w bieżącym schemacie. Aby dowiedzieć się, jak ścieżka odnosi się do zapytań w instrukcjach DDL oraz do widoków trwałych, zobacz Tabela i rozwiązywanie widoków. Aby uzyskać proceduralne ciała, zobacz Rozwiązywanie funkcji i procedur.

Syntax

SET PATH = path_element [, ...]

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

Parameters

  • DEFAULT_PATH

    Słowo kluczowe, które rozszerza się do parametru konfiguracyjnego PATH , czyli domyślnego miejsca pracy, który dziedziczą nowe sesje. Jeśli parametr nie został nadpisany, rozwinięcie wynosi .system.session, system.builtin, system.ai, CURRENT_SCHEMA

  • SYSTEM_PATH

    Słowo kluczowe rozszerzające się na systemowe schematy: system.builtin, system.ai.

  • CURRENT_SCHEMA

    Wirtualna referencja do schematu, która rozwiązuje się w czasie użytkowania z bieżącym katalogiem i schematem (current_catalog().current_schema()). Rozszerzenie następuje po zmianach wprowadzonych podczas USE CATALOGUSE SCHEMA i podczas sesji.

  • ŚCIEŻKA

    Słowo kluczowe, które rozszerza się na bieżącą ścieżkę sesji. Użyj go, by przedłużyć ścieżkę bez powtarzania jej treści.

  • schema_name

    Wymagana jest dwuczęściowa nazwa (catalog.schema). Dozwolone są imiona składające się z więcej niż dwóch części. Jednoczęściowe imię wywołuje INVALID_SQL_PATH_SCHEMA_REFERENCE.

    Katalog i schemat nie muszą istnieć w momencie uruchomienia SET PATH. Rozwiązywanie nazw pomija brakujące wpisy i kontynuuje kolejne elementy ścieżki.

Opis

Poniższe reguły określają, które elementy SET PATH ścieżki akceptują i jak powstała ścieżka wpływa na rozwiązywanie nazw.

  • Duplikaty: Elementy ścieżki duplikatyczne są zabronione. Po rozszerzeniu słów kluczowych duplikaty podnoszą DUPLICATE_SQL_PATH_ENTRY.
  • Schematy systemowe: system.builtin oraz system.ai wbudowane funkcje skalarne, tabelarne i AI. system.session Zawiera obiekty o skali sesji, takie jak zmienne tymczasowe, funkcje tymczasowe i widoki tymczasowe. Zazwyczaj nie zaleca się zejścia system.builtin ze ścieżki.
  • Pominięte schematy: Niezadowolone nazwy rozwiązują się tylko przeciwko schematom na ścieżce. Jeśli pominiesz CURRENT_SCHEMA, zakwalifikuj trwałe obiekty w obecnym schemacie. Jeśli pominiesz system.builtin lub system.ai, te funkcje kwalifikujesz, na przykład system.builtin.abs. Jeśli pominiesz system.session, nie znajdują się niekwalifikowane widoki tymczasowe, funkcje tymczasowe oraz zmienne sesyjne.
  • Widoki i procedury: Widoki trwałe, funkcje zdefiniowane przez użytkownika SQL i SQL SECURITY DEFINER procedury rejestrują ścieżkę w i CREATE rozwiązują niezastrzeżone nazwy w swoich ciałach względem tej przejętej ścieżki, a nie ścieżki sesji wywoływacza. Procedura pomija SQL SECURITY DEFINERsystem.session ścieżkę przejęcia. Procedura wykorzystuje SQL SECURITY INVOKER ścieżkę na żywo dzwoniącego. Zobacz Zdobyta ścieżka.
  • Inspekcja ścieżki: SET PATH; nie drukuje ścieżki. Użyj current_path.

Examples

Wykonaj następujące instrukcje w kolejności, ponieważ kolejne instrukcje budują na ścieżce, którą wyznaczają wcześniejsze.

-- 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

Poniższe instrukcje nie są prawidłowe i nie zmieniają ścieżki.

-- 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]