Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do:
, Databricks SQL
, 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_SCHEMASYSTEM_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.
-
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.builtinorazsystem.aiwbudowane funkcje skalarne, tabelarne i AI.system.sessionZawiera obiekty o skali sesji, takie jak zmienne tymczasowe, funkcje tymczasowe i widoki tymczasowe. Zazwyczaj nie zaleca się zejściasystem.builtinze ś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 pominieszsystem.builtinlubsystem.ai, te funkcje kwalifikujesz, na przykładsystem.builtin.abs. Jeśli pominieszsystem.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 DEFINERprocedury rejestrują ścieżkę w iCREATErozwiązują niezastrzeżone nazwy w swoich ciałach względem tej przejętej ścieżki, a nie ścieżki sesji wywoływacza. Procedura pomijaSQL SECURITY DEFINERsystem.sessionścieżkę przejęcia. Procedura wykorzystujeSQL 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]