Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im Blog-Posting
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.
USE
Ändert die Datenbank, in der Abfragen ausgeführt werden. SHOW USE verweist auf die Datenbank, die zuletzt mit dem Befehl USE verwendet wurde. RESET USE setzt die verwendete Datenbank zurück. Das bedeutet, dass die Objekte in der aktuellen Datenbank gesucht werden, wenn die Datenbank nicht in der SQL-Abfrage angegeben ist.
Syntax
USE database
Beispiele
Angenommen, es gibt drei Datenbanken, dev, pdb und pdb2. Es gibt zwei Tabellen mit dem Namen t in den öffentlichen Schemata jeder der beiden Datenbanken. Fügen Sie zunächst Daten in Tabellen über verschiedene Datenbanken hinweg ein:
dev=# insert into dev.public.t values (1); INSERT 0 1 dev=# insert into pdb.public.t values (2); INSERT 0 1
Ohne eine Datenbank explizit festzulegen, verwendet das System die jeweils verbundene Datenbank. Überprüfen Sie den aktuellen Datenbankkontext:
dev=# show use; Use Database (1 row) dev=> show search_path; search_path $user, public (1 row)
Wenn Sie eine Tabelle t abfragen, ohne eine Datenbank anzugeben, verwendet das System die Tabelle in der aktuellen Datenbank:
dev=# select * from t; c ---- 1 (1 row)
Verwenden Sie den Befehl use, um zwischen den Datenbanken zu wechseln, ohne die Verbindung zu ändern:
dev=# use pdb; USE dev=# show use; Use Database -------------- pdb (1 row) dev=# select * from t; id ---- 2 (1 row)
Sie können außerdem das Schema explizit angeben.
dev=# select * from public.t; id ---- 2 (1 row)
Sie können jetzt Tabellen in verschiedenen Schemata in der aktuellen Datenbank erstellen:
dev=# create table s1.t(id int); CREATE TABLE dev=# insert into pdb.s1.t values (3); INSERT 0 1
Der Suchpfad bestimmt das Schema, auf dessen Objekte zugegriffen wird, wenn Sie kein Schema angeben:
dev=# set search_path to public, s1; SET dev=# select * from t; id ---- 2 (1 row)
Ändern Sie die Reihenfolge der Schemata, um auf verschiedene Tabellen zuzugreifen:
dev=# set search_path to s1, public; SET dev=# show search_path; search_path ------------- s1, public (1 row) dev=# select * from t; id ---- 3 (1 row)
Wechseln Sie zu einer anderen Datenbank. während Sie dabei die ursprüngliche Verbindung beibehalten:
dev=# show use; Use Database -------------- pdb (1 row) dev=# use pdb2; USE dev=# show use; Use Database -------------- pdb2 (1 row)
Beim Wechsel von Datenbanken wird der Suchpfad auf die Standardeinstellung zurückgesetzt:
dev=# show search_path; search_path --------------- $user, public (1 row)
Erstellen Sie eine Tabelle und fügen Sie Daten in die aktuelle Datenbank ein:
dev=# create table pdb2.public.t(id int); CREATE TABLE dev=# insert into pdb2.public.t values (4); INSERT 0 1 dev=# select * from t; id ---- 4 (1 row)
Bei Transaktionen können Sie zur aktuellen Datenbank schreiben und aus jeder Datenbank lesen, wobei eine dreiteilige Notation verwendet wird. Dazu gehört auch die verbundene Datenbank:
dev=# show use; Use Database -------------- pdb2 (1 row) dev=# BEGIN; BEGIN dev=# select * from t; id ---- 4 (1 row) dev=# insert into t values (5); INSERT 0 1 dev=# select * from t; id ---- 4 5 (2 rows) dev=# select * from pdb.public.t; id ---- 2 (1 row) dev=# select * from dev.public.t; id ---- 1 (1 row)
Führen Sie eine Zurücksetzung auf die verbundene Datenbank aus. Beachten Sie, dass nicht nur eine Zurücksetzung auf die zuvor verwendete Datenbank pdb erfolgt, sondern auch auf die verbundene Datenbank. Der Suchpfad wird in den Standardpfad geändert:
dev=# RESET USE; RESET dev=# select * from t; c ---- 1 (1 row) dev=# show use; Use Database -------------- (1 row) dev=# show search_path; search_path --------------- $user, public (1 row)
Sie können Datenbanken zu Beginn einer Transaktion wechseln, jedoch nicht, nachdem Abfragen ausgeführt wurden:
dev=# BEGIN; BEGIN dev=# use pdb; USE dev=# use pdb2; USE dev=# use pdb; USE dev=# select * from t; id ---- 2 (1 row) dev=# use pdb2; ERROR: USEd Database cannot be set or reset inside a transaction after another command. dev=# rollback; ROLLBACK (1 row)
Data-Catalog-Beispiel
Erstellen Sie zunächst Tabellen in verschiedenen Schemata und Katalogen, um katalogübergreifende Abfragen zu demonstrieren. Erstellen Sie zunächst Tabellen in der verbundenen Datenbank.
dev=# CREATE TABLE dev.public.t (col INT); dev=# INSERT INTO dev.public.t VALUES (1); dev=# CREATE SCHEMA write_schema; dev=# CREATE TABLE dev.write_schema.t (state char (2)); dev=# INSERT INTO dev.write_schema.t VALUES ('WA');
Erstellen Sie dann ähnliche Tabellen in einem anderen Katalog. Dies zeigt das Arbeiten mit katalogübergreifenden Datenbanken.
dev=# CREATE TABLE my_db@my_catalog.public.t (col INT); dev=# INSERT INTO my_db@my_catalog.public.t VALUES (100); dev=# CREATE SCHEMA my_db@my_catalog.write_schema; dev=# CREATE TABLE my_db@my_catalog.write_schema.t (state char (2)); dev=# INSERT INTO my_db@my_catalog.write_schema.t VALUES ('CA');
Überprüfen Sie den aktuellen Datenbankkontext. Ohne eine Datenbank explizit festzulegen, verwendet das System die jeweils verbundene Datenbank.
dev=# SHOW USE; Use Database -------------- (1 row) dev=# SHOW search_path; search_path --------------- $user, public (1 row) dev=# SELECT * FROM t; col ----- 1 (1 row)
Stellen Sie die USEd Datenbank so ein, dass sie die Tabellen in einem anderen Katalog abfragt.
dev=# USE my_db@my_catalog; dev=# SHOW USE; Use Database ------------------------------------- my_db@my_catalog (1 row) dev=# SHOW search_path; search_path --------------- $user, public (1 row)
Wenn Sie Tabelle t abfragen, stammen die Ergebnisse aus der katalogübergreifenden Datenbank.
dev=# SELECT * FROM t; col ----- 100 (1 row) dev=# SELECT * FROM public.t; col ----- 100 (1 row) dev=# SELECT * FROM my_db@my_catalog.public.t; col ----- 100 (1 row)
Ändern Sie den Suchpfad, um auf Tabellen in verschiedenen Schemas innerhalb der USEd Datenbank zuzugreifen.
dev=# SET search_path to write_schema; dev=# SHOW search_path; search_path -------------- write_schema (1 row) dev=# SELECT * FROM t; state ------- CA (1 row) dev=# SELECT * FROM write_schema.t; state ------- CA (1 row) dev=# SELECT * FROM my_db@my_catalog.write_schema.t; state ------- CA (1 row)
Auch wenn USE auf eine katalogübergreifende Datenbank festgelegt ist, kann die ursprüngliche Datenbank explizit abgefragt werden.
dev=# SELECT * FROM dev.write_schema.t; state ------- WA (1 row)
Setzen Sie die USEd Datenbank zurück, um erneut auf Objekte in der verbundenen Datenbank zu verweisen.
dev=# RESET USE; dev=# SHOW USE; Use Database -------------- (1 row)
Beachten Sie, dass search_path zurückgesetzt wird, wenn USE zurückgesetzt wird.
dev=# SHOW search_path; search_path --------------- $user, public (1 row)
Nach dem Zurücksetzen beziehen sich Abfragen nun auf die ursprünglich verbundene Datenbank.
dev=# SELECT * FROM t; col ----- 1 (1 row) dev=# SELECT * FROM public.t; col ----- 1 (1 row) dev=# SELECT * FROM dev.public.t; col ----- 1 (1 row)
Sie können den Suchpfad in der ursprünglichen Datenbank ändern, um auf verschiedene Schemata zuzugreifen.
dev=# SET search_path to write_schema; dev=# SHOW search_path; search_path -------------- write_schema (1 row) dev=# SELECT * FROM t; state ------- WA (1 row) dev=# SELECT * FROM write_schema.t; state ------- WA (1 row) dev=# SELECT * FROM dev.write_schema.t; state ------- WA (1 row)