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

Das folgende Beispiel erstellt das Schema ENTERPRISE und setzt den search_path auf ein neues Schema.

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

Das folgende Beispiel fügt das Schema ENTERPRISE dem Standard-search_path hinzu.

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

Das folgende Beispiel fügt die Tabelle FRONTIER dem Schema ENTERPRISE hinzu.

create table enterprise.frontier (c1 int);

Wenn die Tabelle PUBLIC.FRONTIER in derselben Datenbank erstellt wird und der Benutzer in einer Abfrage den Schemanamen nicht angibt, hat PUBLIC.FRONTIER Vorrang gegenüber ENTERPRISE.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)