

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# USE
<a name="r_USE_command"></a>

Mengubah database tempat kueri berjalan. SHOW USE menunjuk ke database yang terakhir digunakan dengan perintah USE. RESET USE me-reset database yang digunakan. Ini berarti bahwa jika database tidak ditentukan dalam SQL, objek dicari dalam database saat ini.

## Sintaksis
<a name="r_USE-synopsis"></a>

```
USE database
```

## Contoh
<a name="r_USE_command-examples"></a>

Misalkan ada tiga database, `dev` dan`pdb`, dan`pdb2`. Biarkan ada dua tabel `t` dalam skema publik dari masing-masing database. Pertama, masukkan data ke dalam tabel di berbagai database:

```
dev=# insert into dev.public.t values (1);
INSERT 0 1
dev=# insert into pdb.public.t values (2);
INSERT 0 1
```

Tanpa secara eksplisit mengatur database, sistem menggunakan database Anda yang terhubung. Periksa konteks database Anda saat ini:

```
dev=# show use;
Use Database

(1 row)
dev=> show search_path;
search_path
$user, public
(1 row)
```

Saat menanyakan tabel `t` tanpa menentukan database, sistem menggunakan tabel dalam database Anda saat ini:

```
dev=# select * from t;
c
----
1
(1 row)
```

Gunakan `use` perintah untuk beralih database tanpa mengubah koneksi Anda:

```
dev=# use pdb;
USE
dev=# show use;
 Use Database
--------------
 pdb
(1 row)
dev=# select * from t;
id
----
2
(1 row)
```

Anda juga dapat secara eksplisit menentukan skema:

```
dev=# select * from public.t;
id
----
2
(1 row)
```

Anda sekarang dapat membuat tabel dalam skema yang berbeda dalam database Anda saat ini:

```
dev=# create table s1.t(id int);
CREATE TABLE
dev=# insert into pdb.s1.t values (3);
INSERT 0 1
```

Jalur pencarian menentukan objek skema mana yang diakses saat Anda tidak menentukan skema:

```
dev=# set search_path to public, s1;
SET
dev=# select * from t;
 id
----
  2
(1 row)
```

Ubah urutan skema untuk mengakses tabel yang berbeda:

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

Beralih ke database lain sambil mempertahankan koneksi asli Anda:

```
dev=# show use;
 Use Database
--------------
 pdb
(1 row)
dev=# use pdb2;
USE
dev=# show use;
 Use Database
--------------
 pdb2
(1 row)
```

Saat beralih database, jalur pencarian disetel ulang ke default:

```
dev=# show search_path;
  search_path
---------------
 $user, public
(1 row)
```

Buat tabel dan masukkan data dalam database Anda saat ini:

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

Dalam transaksi, Anda dapat menulis ke database saat ini dan membaca dari database apa pun menggunakan notasi tiga bagian. Ini juga termasuk database yang terhubung:

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

Setel ulang ke database Anda yang terhubung. Perhatikan bahwa ini tidak hanya kembali ke database yang digunakan sebelumnya`pdb`, tetapi mengatur ulang ke database yang terhubung. Jalur pencarian juga berubah ke jalur default: 

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

Anda dapat mengubah database pada awal transaksi, tetapi tidak setelah menjalankan kueri:

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

### Contoh Katalog Data
<a name="use-redlake-example"></a>

Pertama, buat tabel dalam skema dan katalog yang berbeda untuk mendemonstrasikan kueri lintas katalog. Mulailah dengan membuat tabel di database yang terhubung.

```
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');
```

Sekarang, buat tabel serupa di katalog yang berbeda. Ini menunjukkan cara bekerja dengan database lintas katalog.

```
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');
```

Periksa konteks database saat ini. Tanpa secara eksplisit mengatur database, sistem menggunakan database yang terhubung.

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

Mengatur USEd database untuk query tabel dalam katalog yang berbeda.

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

Saat menanyakan tabel t, hasil berasal dari database lintas-katalog.

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

Ubah jalur pencarian untuk mengakses tabel dalam skema yang berbeda dalam USEd database.

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

Meskipun USE diatur ke database lintas katalog, masih mungkin untuk secara eksplisit menanyakan database asli.

```
dev=# SELECT * FROM dev.write_schema.t;
 state
-------
 WA
(1 row)
```

Setel ulang USEd database untuk kembali merujuk ke objek dalam database yang terhubung.

```
dev=# RESET USE;

dev=# SHOW USE;
 Use Database
--------------

(1 row)
```

Perhatikan bahwa search\$1path disetel ulang saat USE disetel ulang.

```
dev=# SHOW search_path;
  search_path
---------------
 $user, public
(1 row)
```

Setelah mengatur ulang, kueri sekarang merujuk ke database terhubung asli.

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

Anda dapat memodifikasi jalur pencarian di database asli untuk mengakses skema yang berbeda.

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