search_path - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

search_path

Werte (Standard in Fettdruck)

'$user', public, schema_names

Eine durch Kommata getrennte Liste vorhandener Schemanamen. Wenn '$user' vorhanden ist, wird das Schema mit dem gleichen Namen wie SESSION_USER ersetzt, andernfalls wird es ignoriert.

Beschreibung

Gibt an, in welcher Reihenfolge die Schemata durchsucht werden, wenn ein Objekt (beispielsweise eine Tabelle oder eine Funktion) mit dem einfachen Namen ohne Schemakomponente referenziert wird:

  • Externe Schemata und externe Tabellen unterstützen keine Suchpfade. Externe Tabellen müssen durch einen externen Schemanamen ausdrücklich qualifiziert werden.

  • Wenn Objekte ohne spezifisches Zielschema erstellt werden, werden Sie in das erste in dem Suchpfad aufgeführte Schema gesetzt. Wenn der Suchpfad leer ist, gibt das System einen Fehler aus.

  • Wenn Objekte mit unterschiedlichen Namen in unterschiedlichen Schemata existieren, wird das zuerst in dem Suchpfad stehende verwendet.

  • Ein Objekt, das sich in keinem der Schemata in dem Suchpfad befindet, kann nur durch Angabe seines enthaltenden Schemas mit einem qualifizierten Namen (mit Punkten) referenziert werden.

  • Das Systemkatalogschema, pg_catalog, ist immer ausgewählt. Wenn es in dem Pfad erwähnt wird, wird es in der angegebenen Reihenfolge durchsucht. Wenn dies nicht der Fall ist, wird es vor den Pfadelementen durchsucht.

  • Das temporäre Tabellenschema der aktuellen Sitzung, pg_temp_nnn, wird, falls vorhanden, immer durchsucht. Es kann ausdrücklich in dem Pfad mittels des Alias pg_temp aufgeführt werden. Wenn es nicht in dem Pfad aufgeführt wird, wird es zuerst (selbst vor pg_catalog) durchsucht. Das temporäre Schema wird jedoch nur nach Relationsnamen (Tabellen, Ansichten) durchsucht. Es wird nicht nach Funktionsnamen durchsucht.

Beispiel

Im folgenden Beispiel wird das Schema erstellt ENTERPRISE und für search_path das neue Schema festgelegt.

create schema enterprise; set search_path to enterprise; show search_path; search_path ------------- enterprise (1 row)

Im folgenden Beispiel wird das Schema zum Standardschema ENTERPRISE search_path hinzugefügt.

set search_path to '$user', public, enterprise; show search_path; search_path ----------------------------- "$user", public, enterprise (1 row)

Im folgenden Beispiel wird die Tabelle dem Schema FRONTIER hinzugefügt. ENTERPRISE

create table enterprise.frontier (c1 int);

Wenn die TabellePUBLIC. FRONTIERwird in derselben Datenbank erstellt, und der Benutzer gibt den Schemanamen nicht in einer Abfrage an,PUBLIC. FRONTIERhat Vorrang ENTERPRISE vor. FRONTIER.

create table public.frontier(c1 int); insert into enterprise.frontier values(1); select * from frontier; frontier ---- (0 rows) select * from enterprise.frontier; c1 ---- 1 (1 row)