

 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.

# Perintah meta Amazon Redshift RSQL
<a name="rsql-query-tool-commands"></a>

Perintah meta Amazon Redshift RSQL mengembalikan catatan informasi tentang database atau objek database tertentu. Hasil dapat mencakup berbagai kolom dan metadata. Perintah lain melakukan tindakan tertentu. Perintah ini didahului dengan garis miring terbalik.

## \$1 d [S \$1]
<a name="rsql-query-tool-describe-d"></a>

 Daftar tabel buatan pengguna lokal, tampilan reguler, tampilan yang mengikat akhir, dan tampilan terwujud. `\dS `juga mencantumkan tabel dan tampilan`\d`, seperti, tetapi objek sistem disertakan dalam catatan yang dikembalikan. `+`Hasil di kolom metadata tambahan `description` untuk semua objek yang terdaftar. Berikut ini menunjukkan catatan sampel dikembalikan sebagai hasil dari perintah. 

```
List of relations
 schema |   name    | type  |  owner  
--------+-----------+-------+---------
 public | category  | table | awsuser
 public | date      | table | awsuser
 public | event     | table | awsuser
 public | listing   | table | awsuser
 public | sales     | table | awsuser
 public | users     | table | awsuser
 public | venue     | table | awsuser
(7 rows)
```

## \$1 d [S\$1] NAMA
<a name="rsql-query-tool-describe-s-plus-named"></a>

Menjelaskan tabel, tampilan, atau indeks. Termasuk nama kolom dan jenis. Ini juga menyediakan diststyle, konfigurasi cadangan, membuat tanggal (tabel dibuat setelah Oktober 2018), dan kendala. Misalnya, `\dS+ sample` mengembalikan properti objek. Menambahkan `S+` hasil di kolom tambahan termasuk dalam catatan yang dikembalikan.

```
Table "public.sample"
 Column |            Type             |   Collation    | Nullable | Default Value | Encoding  | DistKey | SortKey
--------+-----------------------------+----------------+----------+---------------+-----------+---------+---------
 col1   | smallint                    |                | NO       |               | none      | t       | 1
 col2   | character(100)              | case_sensitive | YES      |               | none      | f       | 2
 col3   | character varying(100)      | case_sensitive | YES      |               | text32k   | f       | 3
 col4   | timestamp without time zone |                | YES      |               | runlength | f       | 0
 col5   | super                       |                | YES      |               | zstd      | f       | 0
 col6   | bigint                      |                | YES      |               | az64      | f       | 0

Diststyle: KEY
Backup: YES
Created: 2021-07-20 19:47:27.997045
Unique Constraints:
    "sample_pkey" PRIMARY KEY (col1)
    "sample_col2_key" UNIQUE (col2)
Foreign-key constraints:
    "sample_col2_fkey" FOREIGN KEY (col2) REFERENCES lineitem(l_orderkey)
```

Gaya distribusi, atau *Diststyle*, dari tabel bisa KEY, AUTO, EVEN atau ALL.

*Backup* menunjukkan apakah tabel dicadangkan saat snapshot diambil. Nilai-nilai yang valid adalah `YES` atau `NO`.

*Dibuat* adalah stempel waktu untuk saat tabel dibuat. Tanggal pembuatan tidak tersedia untuk tabel Amazon Redshift yang dibuat sebelum November 2018. Tabel yang dibuat sebelum tanggal ini ditampilkan n/a (Tidak Tersedia). 

Kendala *Unik mencantumkan kendala* kunci unik dan primer di atas meja.

*Kendala kunci asing mencantumkan kendala* kunci asing di atas meja.

## \$1 dC [\$1] [POLA]
<a name="rsql-query-tool-describe-dc"></a>

Daftar gips. Termasuk jenis sumber, tipe target, dan apakah pemeran itu implisit.

Berikut ini menunjukkan subset hasil dari`\dC+`.

```
List of casts
         source type         |         target type         |      function       |   implicit?   | description 
-----------------------------+-----------------------------+---------------------+---------------+-------------
 "char"                      | character                   | bpchar              | in assignment | 
 "char"                      | character varying           | text                | in assignment | 
 "char"                      | integer                     | int4                | no            | 
 "char"                      | text                        | text                | yes           | 
 "path"                      | point                       | point               | no            | 
 "path"                      | polygon                     | polygon             | in assignment | 
 abstime                     | date                        | date                | in assignment | 
 abstime                     | integer                     | (binary coercible)  | no            | 
 abstime                     | time without time zone      | time                | in assignment | 
 abstime                     | timestamp with time zone    | timestamptz         | yes           | 
 abstime                     | timestamp without time zone | timestamp           | yes           | 
 bigint                      | bit                         | bit                 | no            | 
 bigint                      | boolean                     | bool                | yes           | 
 bigint                      | character                   | bpchar              | in assignment | 
 bigint                      | character varying           | text                | in assignment | 
 bigint                      | double precision            | float8              | yes           | 
 bigint                      | integer                     | int4                | in assignment | 
 bigint                      | numeric                     | numeric             | yes           | 
 bigint                      | oid                         | oid                 | yes           | 
 bigint                      | real                        | float4              | yes           | 
 bigint                      | regclass                    | oid                 | yes           | 
 bigint                      | regoper                     | oid                 | yes           | 
 bigint                      | regoperator                 | oid                 | yes           | 
 bigint                      | regproc                     | oid                 | yes           | 
 bigint                      | regprocedure                | oid                 | yes           | 
 bigint                      | regtype                     | oid                 | yes           | 
 bigint                      | smallint                    | int2                | in assignment | 
 bigint                      | super                       | int8_partiql        | in assignment |
```

## \$1 dd [S] [POLA]
<a name="rsql-query-tool-describe-dds"></a>

Menampilkan deskripsi objek yang tidak ditampilkan di tempat lain.

## \$1 de
<a name="rsql-query-tool-describe-de"></a>

Daftar tabel eksternal. Ini termasuk tabel di AWS Glue Data Catalog, Hive Metastore dan tabel federasi dari Amazon MySQL, Amazon PostgreSQL, dan tabel data RDS/Aurora Amazon Redshift. RDS/Aurora 

## \$1 NAMA
<a name="rsql-query-tool-describe-de-name"></a>

Menjelaskan tabel eksternal.

Contoh berikut menunjukkan tabel AWS Glue eksternal.

```
# \de spectrum.lineitem
                            Glue External table "spectrum.lineitem"
     Column      | External Type | Redshift Type | Position | Partition Key | Nullable
-----------------+---------------+---------------+----------+---------------+----------
 l_orderkey      | bigint        | bigint        | 1        | 0             |
 l_partkey       | bigint        | bigint        | 2        | 0             |
 l_suppkey       | int           | int           | 3        | 0             |
 l_linenumber    | int           | int           | 4        | 0             |
 l_quantity      | decimal(12,2) | decimal(12,2) | 5        | 0             |
 l_extendedprice | decimal(12,2) | decimal(12,2) | 6        | 0             |
 l_discount      | decimal(12,2) | decimal(12,2) | 7        | 0             |
 l_tax           | decimal(12,2) | decimal(12,2) | 8        | 0             |
 l_returnflag    | char(1)       | char(1)       | 9        | 0             |
 l_linestatus    | char(1)       | char(1)       | 10       | 0             |
 l_shipdate      | date          | date          | 11       | 0             |
 l_commitdate    | date          | date          | 12       | 0             |
 l_receiptdate   | date          | date          | 13       | 0             |
 l_shipinstruct  | char(25)      | char(25)      | 14       | 0             |
 l_shipmode      | char(10)      | char(10)      | 15       | 0             |
 l_comment       | varchar(44)   | varchar(44)   | 16       | 0             |

Location: s3://redshiftbucket/kfhose2019/12/31
Input_format: org.apache.hadoop.mapred.TextInputFormat
Output_format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Serialization_lib: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
Serde_parameters: {"field.delim":"|","serialization.format":"|"}
Parameters: {"EXTERNAL":"TRUE","numRows":"178196721475","transient_lastDdlTime":"1577771873"}
```

Meja Hive Metastore.

```
# \de emr.lineitem
                     Hive Metastore External Table "emr.lineitem"
     Column      | External Type | Redshift Type | Position | Partition Key | Nullable
-----------------+---------------+---------------+----------+---------------+----------
 l_orderkey      | bigint        | bigint        | 1        | 0             |
 l_partkey       | bigint        | bigint        | 2        | 0             |
 l_suppkey       | int           | int           | 3        | 0             |
 l_linenumber    | int           | int           | 4        | 0             |
 l_quantity      | decimal(12,2) | decimal(12,2) | 5        | 0             |
 l_extendedprice | decimal(12,2) | decimal(12,2) | 6        | 0             |
 l_discount      | decimal(12,2) | decimal(12,2) | 7        | 0             |
 l_tax           | decimal(12,2) | decimal(12,2) | 8        | 0             |
 l_returnflag    | char(1)       | char(1)       | 9        | 0             |
 l_linestatus    | char(1)       | char(1)       | 10       | 0             |
 l_commitdate    | date          | date          | 11       | 0             |
 l_receiptdate   | date          | date          | 12       | 0             |
 l_shipinstruct  | char(25)      | char(25)      | 13       | 0             |
 l_shipmode      | char(10)      | char(10)      | 14       | 0             |
 l_comment       | varchar(44)   | varchar(44)   | 15       | 0             |
 l_shipdate      | date          | date          | 16       | 1             |

Location: s3://redshiftbucket/cetas
Input_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
Output_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
Serialization_lib: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
Serde_parameters: {"serialization.format":"1"}
Parameters: {"EXTERNAL":"TRUE", "numRows":"4307207", "transient_lastDdlTime":"1626990007"}
```

PostgreSQL tabel eksternal.

```
# \de pgrsql.alltypes
                                Postgres Federated Table "pgrsql.alltypes"
 Column |        External Type        |        Redshift Type        | Position | Partition Key | Nullable
--------+-----------------------------+-----------------------------+----------+---------------+----------
 col1   | bigint                      | bigint                      | 1        | 0             |
 col2   | bigint                      | bigint                      | 2        | 0             |
 col5   | boolean                     | boolean                     | 3        | 0             |
 col6   | box                         | varchar(65535)              | 4        | 0             |
 col7   | bytea                       | varchar(65535)              | 5        | 0             |
 col8   | character(10)               | character(10)               | 6        | 0             |
 col9   | character varying(10)       | character varying(10)       | 7        | 0             |
 col10  | cidr                        | varchar(65535)              | 8        | 0             |
 col11  | circle                      | varchar(65535)              | 9        | 0             |
 col12  | date                        | date                        | 10       | 0             |
 col13  | double precision            | double precision            | 11       | 0             |
 col14  | inet                        | varchar(65535)              | 12       | 0             |
 col15  | integer                     | integer                     | 13       | 0             |
 col16  | interval                    | varchar(65535)              | 14       | 0             |
 col17  | json                        | varchar(65535)              | 15       | 0             |
 col18  | jsonb                       | varchar(65535)              | 16       | 0             |
 col19  | line                        | varchar(65535)              | 17       | 0             |
 col20  | lseg                        | varchar(65535)              | 18       | 0             |
 col21  | macaddr                     | varchar(65535)              | 19       | 0             |
 col22  | macaddr8                    | varchar(65535)              | 20       | 0             |
 col23  | money                       | varchar(65535)              | 21       | 0             |
 col24  | numeric                     | numeric(38,20)              | 22       | 0             |
 col25  | path                        | varchar(65535)              | 23       | 0             |
 col26  | pg_lsn                      | varchar(65535)              | 24       | 0             |
 col28  | point                       | varchar(65535)              | 25       | 0             |
 col29  | polygon                     | varchar(65535)              | 26       | 0             |
 col30  | real                        | real                        | 27       | 0             |
 col31  | smallint                    | smallint                    | 28       | 0             |
 col32  | smallint                    | smallint                    | 29       | 0             |
 col33  | integer                     | integer                     | 30       | 0             |
 col34  | text                        | varchar(65535)              | 31       | 0             |
 col35  | time without time zone      | varchar(65535)              | 32       | 0             |
 col36  | time with time zone         | varchar(65535)              | 33       | 0             |
 col37  | timestamp without time zone | timestamp without time zone | 34       | 0             |
 col38  | timestamp with time zone    | timestamp with time zone    | 35       | 0             |
 col39  | tsquery                     | varchar(65535)              | 36       | 0             |
 col40  | tsvector                    | varchar(65535)              | 37       | 0             |
 col41  | txid_snapshot               | varchar(65535)              | 38       | 0             |
 col42  | uuid                        | varchar(65535)              | 39       | 0             |
 col43  | xml                         | varchar(65535)              | 40       | 0             |
```

## \$1 df [anptw] [S\$1] [POLA]
<a name="rsql-query-tool-df"></a>

 Daftar fungsi dari berbagai jenis. Perintah`\df`, misalnya, mengembalikan daftar fungsi. Hasil mencakup properti seperti nama, tipe data yang dikembalikan, hak akses, dan metadata tambahan. Jenis fungsi dapat mencakup pemicu, prosedur tersimpan, fungsi jendela, dan jenis lainnya. Ketika Anda menambahkan `S+` ke perintah, misalnya`\dfantS+`, kolom metadata tambahan disertakan, seperti`owner`,, dan. `security` `access privileges` 

## \$1 dL [S\$1] [POLA]
<a name="rsql-query-tool-describe-dl"></a>

 Daftar data tentang bahasa prosedural yang terkait dengan database. Informasi mencakup nama, seperti plpgsql, dan metadata tambahan, yang mencakup apakah itu tepercaya, hak akses, dan deskripsi. Contoh panggilan, misalnya`\dLS+`, yang mencantumkan bahasa dan propertinya. Ketika Anda menambahkan `S+` ke perintah, kolom metadata tambahan disertakan, seperti dan. `call handler` `access privileges` 

Hasil sampel:

```
List of languages
   name    | trusted | internal language |      call handler       |                         validator                          | access privileges |          description           
-----------+---------+-------------------+-------------------------+------------------------------------------------------------+-------------------+--------------------------------
 c         | f       | t                 | -                       | fmgr_c_validator(oid)                                      |                   | Dynamically-loaded C functions
 exfunc    | f       | f                 | exfunc_call_handler()   | -                                                          | rdsdb=U/rdsdb     | 
 internal  | f       | t                 | -                       | fmgr_internal_validator(oid)                               |                   | Built-in functions
 mlfunc    | f       | f                 | mlfunc_call_handler()   | -                                                          | rdsdb=U/rdsdb     | 
 plpgsql   | t       | f                 | plpgsql_call_handler()  | plpgsql_validator(oid)                                     |                   | 
 plpythonu | f       | f                 | plpython_call_handler() | plpython_compiler(cstring,cstring,cstring,cstring,cstring) | rdsdb=U/rdsdb     | 
 sql       | t       | t                 | -                       | fmgr_sql_validator(oid)                                    | =U/rdsdb          | SQL-language functions
```

## \$1 dm [S\$1] [POLA]
<a name="rsql-query-tool-describe-dm"></a>

 Daftar tampilan terwujud. Misalnya, `\dmS+` daftar tampilan terwujud dan propertinya. Saat Anda menambahkan `S+` ke perintah, kolom metadata tambahan disertakan. 

## \$1 dn [S\$1] [POLA]
<a name="rsql-query-tool-describe-dn"></a>

 Daftar skema. Ketika Anda menambahkan `S+` ke perintah, misalnya`\dnS+`, kolom metadata tambahan disertakan, seperti dan. `description` `access privileges` 

## \$1 dp [POLA]
<a name="rsql-query-tool-describe-dp"></a>

 Daftar hak akses tabel, tampilan, dan urutan. 

## \$1 dt [S\$1] [POLA]
<a name="rsql-query-tool-describe-dt"></a>

 Daftar tabel. Ketika Anda menambahkan `S+` ke perintah, misalnya`\dtS+`, kolom metadata tambahan disertakan, seperti `description` dalam kasus ini. 

## \$1 du
<a name="rsql-query-tool-describe-du"></a>

 Daftar pengguna untuk database. Termasuk nama dan peran mereka, seperti Superuser, dan atribut. 

## \$1 dv [S\$1] [POLA]
<a name="rsql-query-tool-describe-dv"></a>

 Daftar tampilan. Termasuk skema, jenis, dan data pemilik. Ketika Anda menambahkan `S+` ke perintah, misalnya`\dvS+`, kolom metadata tambahan disertakan. 

## \$1 H
<a name="rsql-query-tool-describe-h"></a>

 Menghidupkan output HTML. Ini berguna untuk mengembalikan hasil yang diformat dengan cepat. Misalnya, `select * from sales; \H` mengembalikan hasil dari tabel penjualan, dalam HTML. Untuk beralih kembali ke hasil tablular, gunakan`\q`, atau diam. 

## \$1 saya
<a name="rsql-query-tool-describe-i"></a>

 Menjalankan perintah dari file. Misalnya, dengan asumsi Anda memiliki rsql\$1steps.sql di direktori kerja Anda, berikut ini menjalankan perintah dalam file:`\i rsql_steps.sql`. 

## \$1 l [\$1] [POLA]
<a name="rsql-query-tool-describe-l"></a>

 Daftar database. Termasuk pemilik, pengkodean, dan informasi tambahan. 

## \$1 q
<a name="rsql-query-tool-describe-q"></a>

 Keluar, atau `\q` perintah, log off sesi database dan keluar dari RSQL. 

## \$1 sv [\$1] NAMA TAMPILAN
<a name="rsql-query-tool-describe-sv-name"></a>

 Menunjukkan definisi tampilan. 

## \$1 waktu
<a name="rsql-query-tool-describe-timing"></a>

 Menunjukkan waktu berjalan, untuk kueri, misalnya. 

## \$1 z [POLA]
<a name="rsql-query-tool-describe-z"></a>

 Output yang sama dengan\$1 dp. 

## \$1?
<a name="rsql-query-tool-help"></a>

 Menampilkan informasi bantuan. Parameter opsional menentukan item untuk menjelaskan. 

## \$1 KELUAR
<a name="rsql-query-tool-flow-control-exit"></a>

 Log off semua sesi database dan keluar dari Amazon Redshift RSQL. Selain itu, Anda dapat menentukan kode keluar opsional. Misalnya, `\EXIT 15` akan keluar dari terminal Amazon Redshift RSQL dan mengembalikan kode keluar 15.

Contoh berikut menunjukkan output dari koneksi dan keluar dari RSQL.

```
% rsql -D testuser
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.34.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306 
Type "help" for help.

(testcluster) user1@dev=# \exit 15

% echo $?
15
```

## \$1 EKSPOR
<a name="rsql-query-tool-export"></a>

 Menentukan nama file ekspor yang RSQL gunakan untuk menyimpan informasi database yang dikembalikan oleh pernyataan SQL SELECT berikutnya.

export\$101.sql

```
\export report file='E:\\accounts.out'
\rset rformat off
\rset width 1500
\rset heading "General Title"
\rset titledashes on
select * from td_dwh.accounts;
\export reset
```

Keluaran konsol

```
Rformat is off.
Target width is 1500.
Heading is set to: General Title
Titledashes is on.
(exported 40 rows)
```

## \$1 MASUK
<a name="rsql-query-tool-flow-control-logon"></a>

 Terhubung ke database. Anda dapat menentukan parameter koneksi menggunakan sintaks posisi atau sebagai string koneksi.

Sintaks perintah adalah sebagai berikut: `\logon {[DBNAME|- USERNAME|- HOST|- PORT|- [PASSWORD]] | conninfo}`

`DBNAME`Ini adalah nama database untuk terhubung ke. `USERNAME`Itu adalah nama pengguna untuk terhubung sebagai. `HOST`Defaultnya adalah`localhost`. `PORT`Defaultnya adalah`5439`.

Ketika nama host ditentukan dalam `\LOGON` perintah, itu menjadi nama host default untuk `\LOGON` perintah tambahan. Untuk mengubah nama host default, tentukan yang baru `HOST` dalam `\LOGON` perintah tambahan.

Contoh output dari `\LOGON` perintah untuk `user1` berikut.

```
(testcluster) user1@redshiftdb=# \logon dev
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
You are now connected to database "dev" as user "user1".
(testcluster) user1@dev=#
```

Output sampel untuk *pengguna2*.

```
(testcluster) user1@dev=# \logon dev user2 testcluster2.example.com
Password for user user2: 
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
You are now connected to database "dev" as user "user2" on host "testcluster2.example.com" at port "5439".
(testcluster2) user2@dev=#
```

## \$1 KOMENTAR
<a name="rsql-query-tool-flow-control-remark"></a>

 Perpanjangan `\echo` perintah. `\REMARK`mencetak string yang ditentukan ke aliran output. `\REMARK `meluas `\echo` dengan menambahkan kemampuan untuk memecah output melalui jalur terpisah.

Contoh berikut menunjukkan output dari perintah.

```
(testcluster) user1@dev=# \remark 'hello//world'
hello
world
```

## \$1 RSET
<a name="rsql-query-tool-rset"></a>

Perintah `\rset` menetapkan parameter perintah dan variabel. `\rset`memiliki mode interaktif dan batch. <arg>Itu tidak mendukung opsi sebagai opsi bash, seperti *-x*, atau argumen, misalnya *--*.

Ini menetapkan variabel, seperti berikut ini:
+ TINGKAT KESALAHAN
+ HEADING dan RTITLE
+ RFORMAT
+ MAXERROR
+ TITLEDASHES
+ LEBAR

Contoh berikut menentukan judul.

```
\rset heading "Winter Sales Report"
```

Untuk lebih banyak contoh cara menggunakan`\rset`, Anda dapat menemukan beberapa [Variabel Amazon Redshift RSQL](rsql-query-tool-variables.md) topik.

## \$1 LARI
<a name="rsql-query-tool-flow-control-run"></a>

 Menjalankan skrip Amazon Redshift RSQL yang terdapat dalam file yang ditentukan. `\RUN`memperluas `\i` perintah dengan menambahkan opsi untuk melewati baris header dalam file.

Jika nama file menyertakan koma, titik koma, atau spasi, lampirkan dalam tanda kutip tunggal. Selain itu, jika teks mengikuti nama file, lampirkan dalam tanda kutip. Di UNIX, nama file peka huruf besar/kecil. Di Windows, nama file tidak peka huruf besar/kecil.

Contoh berikut menunjukkan output dari perintah.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) as lineitem_cnt from lineitem;
select count(*) as customer_cnt from customer;
select count(*) as orders_cnt from orders;



(testcluster) user1@dev=# \run file=test.sql
 lineitem_cnt
--------------
      4307207
(1 row)

 customer_cnt
--------------
     37796166
(1 row)

 orders_cnt
------------
          0
(1 row)


(testcluster) user1@dev=# \run file=test.sql skip=2
2 records skipped in RUN file.
 orders_cnt
------------
          0
(1 row)
```

## \$1 OS
<a name="rsql-query-tool-flow-control-os"></a>

 Sebuah alias untuk `\!` perintah. `\OS`menjalankan perintah sistem operasi yang diteruskan sebagai parameter. Kontrol kembali ke Amazon Redshift RSQL setelah perintah dijalankan. Misalnya, Anda dapat menjalankan perintah berikut untuk mencetak waktu tanggal sistem saat ini dan kembali ke terminal RSQL:. `\os date`

```
(testcluster) user1@dev=# \os date
Tue Sep 7 20:47:54 UTC 2021
```

## \$1 GOTO
<a name="rsql-query-tool-flow-control-goto"></a>

 Perintah baru untuk Amazon Redshift RSQL. `\GOTO`melewatkan semua perintah intervensi dan melanjutkan pemrosesan pada yang ditentukan. `\LABEL` `\LABEL`Harus menjadi referensi ke depan. Anda tidak dapat melompat ke `\LABEL` yang secara leksikal mendahului. `\GOTO`

Berikut menampilkan contoh output.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) as cnt from lineitem \gset
select :cnt as cnt;
\if :cnt > 100
    \goto LABELB
\endif

\label LABELA
\remark 'this is label LABELA'
\label LABELB
\remark 'this is label LABELB'


(testcluster) user1@dev=# \i test.sql
   cnt
---------
 4307207
(1 row)

\label LABELA ignored
\label LABELB processed
this is label LABELB
```

## \$1 LABEL
<a name="rsql-query-tool-flow-control-label"></a>

 Perintah baru untuk Amazon Redshift RSQL. `\LABEL`menetapkan titik masuk untuk menjalankan program, sebagai target untuk `\GOTO` perintah.

Berikut ini menunjukkan contoh output dari perintah.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) from lineitem limit 5;
\goto LABELB
\remark "this step was skipped by goto label";
\label LABELA
\remark 'this is label LABELA'
\label LABELB
\remark 'this is label LABELB'



(testcluster) user1@dev=# \i testgoto.sql
  count
 4307193
(1 row)

\label LABELA ignored
\label LABELB processed
this is label LABELB
```

## \$1 IF (\$1 ELSEIF,\$1 ELSE,\$1 ENDIF)
<a name="rsql-query-tool-flow-control-if"></a>

 `\IF`dan perintah terkait menjalankan bagian dari skrip input secara kondisional. Perpanjangan dari perintah PSQL `\if` (`\elif`,`\else`,`\endif`). `\IF`dan `\ELSEIF` mendukung ekspresi boolean termasuk`AND`, `OR` dan `NOT` kondisi. 

Berikut ini menunjukkan contoh output dari perintah.

```
(testcluster) user1@dev=# \! cat test.sql
SELECT query FROM stv_inflight LIMIT 1 \gset
select :query as query;
\if :query > 1000000
    \remark 'Query id is greater than 1000000'
\elseif :query = 1000000
    \remark 'Query id is equal than 1000000'
\else
    \remark 'Query id is less than 1000000'
\endif


(testcluster) user1@dev=# \i test.sql 
 query
--------
 994803
(1 row)
 
Query id is less than 1000000
```

Gunakan `ERRORCODE` dalam logika percabangan Anda.

```
\if :'ERRORCODE' = '00000'
    \remark 'The statement was executed without error'
\else
    \remark :LAST_ERROR_MESSAGE
\endif
```

Gunakan `\GOTO` dalam `\IF` blok untuk mengontrol bagaimana kode dijalankan.