

 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.

# CREATE TABLE
<a name="r_CREATE_TABLE_NEW"></a>

Membuat tabel baru dalam database saat ini. Anda menentukan daftar kolom, yang masing-masing menyimpan data dari jenis yang berbeda. Pemilik tabel adalah penerbit perintah CREATE TABLE.

## Hak istimewa yang diperlukan
<a name="r_CREATE_TABLE-privileges"></a>

Berikut ini adalah hak istimewa yang diperlukan untuk CREATE TABLE:
+ Superuser
+ Pengguna dengan hak istimewa CREATE TABLE

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

```
CREATE [ [LOCAL ] { TEMPORARY | TEMP } ] TABLE
[ IF NOT EXISTS ] table_name
( { column_name data_type [column_attributes] [ column_constraints ]
  | table_constraints
  | LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] }
  [, ... ]  )
[ BACKUP { YES | NO } ]
[table_attributes]

where column_attributes are:
  [ DEFAULT default_expr ]
  [ IDENTITY ( seed, step ) ]
  [ GENERATED BY DEFAULT AS IDENTITY ( seed, step ) ]
  [ ENCODE encoding ]
  [ DISTKEY ]
  [ SORTKEY ]
  [ COLLATE { CASE_SENSITIVE | CS | CASE_INSENSITIVE | CI } ]

and column_constraints are:
  [ { NOT NULL | NULL } ]
  [ { UNIQUE  |  PRIMARY KEY } ]
  [ REFERENCES reftable [ ( refcolumn ) ] ]

and table_constraints  are:
  [ UNIQUE ( column_name [, ... ] ) ]
  [ PRIMARY KEY ( column_name [, ... ] )  ]
  [ FOREIGN KEY (column_name [, ... ] ) REFERENCES reftable [ ( refcolumn ) ]


and table_attributes are:
  [ DISTSTYLE { AUTO | EVEN | KEY | ALL } ]
  [ DISTKEY ( column_name ) ]
  [ [COMPOUND | INTERLEAVED ] SORTKEY ( column_name [,...]) |  [ SORTKEY AUTO ] ]
  [ ENCODE AUTO ]
```

## Parameter
<a name="r_CREATE_TABLE_NEW-parameters"></a>

LOKAL   
Tidak wajib. Meskipun kata kunci ini diterima dalam pernyataan, kata kunci ini tidak berpengaruh di Amazon Redshift.

SEMENTARA \$1 TEMP   
Kata kunci yang membuat tabel sementara yang hanya terlihat dalam sesi saat ini. Tabel secara otomatis dijatuhkan pada akhir sesi di mana ia dibuat. Tabel sementara dapat memiliki nama yang sama dengan tabel permanen. Tabel sementara dibuat dalam skema khusus sesi yang terpisah. (Anda tidak dapat menentukan nama untuk skema ini.) Skema sementara ini menjadi skema pertama di jalur pencarian, sehingga tabel sementara lebih diutamakan daripada tabel permanen kecuali Anda memenuhi syarat nama tabel dengan nama skema untuk mengakses tabel permanen. Untuk informasi lebih lanjut tentang skema dan prioritas, lihat. [search\$1path](r_search_path.md)  
Secara default, pengguna database memiliki izin untuk membuat tabel sementara dengan keanggotaan otomatis mereka di grup PUBLIC. Untuk menolak hak istimewa ini kepada pengguna, cabut hak istimewa TEMP dari grup PUBLIC, dan kemudian secara eksplisit memberikan hak istimewa TEMP hanya kepada pengguna atau grup pengguna tertentu.

JIKA TIDAK ADA  
Klausa yang menunjukkan bahwa jika tabel yang ditentukan sudah ada, perintah tidak boleh membuat perubahan dan mengembalikan pesan bahwa tabel itu ada, daripada berhenti dengan kesalahan. Perhatikan bahwa tabel yang ada mungkin tidak seperti yang akan dibuat; hanya nama tabel yang dibandingkan.  
Klausa ini berguna saat membuat skrip, sehingga skrip tidak gagal jika CREATE TABLE mencoba membuat tabel yang sudah ada.

 *table\$1name*   
Nama tabel yang akan dibuat.  
Jika Anda menentukan nama tabel yang dimulai dengan '\$1 ', tabel dibuat sebagai tabel sementara. Berikut ini adalah contohnya:  

```
create table #newtable (id int);
```
Anda juga mereferensikan tabel dengan '\$1 '. Contoh:   

```
select * from #newtable;
```
Panjang maksimum untuk nama tabel adalah 127 byte; nama yang lebih panjang dipotong menjadi 127 byte. Anda dapat menggunakan karakter multibyte UTF-8 hingga maksimal empat byte. Amazon Redshift memberlakukan kuota jumlah tabel per cluster menurut jenis node, termasuk tabel sementara yang ditentukan pengguna dan tabel sementara yang dibuat oleh Amazon Redshift selama pemrosesan kueri atau pemeliharaan sistem. Secara opsional, nama tabel dapat dikualifikasikan dengan database dan nama skema. Dalam contoh berikut, nama database adalah`tickit`, nama skema`public`, dan nama tabel adalah`test`.   

```
create table tickit.public.test (c1 int);
```
Jika database atau skema tidak ada, tabel tidak dibuat, dan pernyataan mengembalikan kesalahan. Anda tidak dapat membuat tabel atau tampilan dalam database sistem`template0`,, `template1``padb_harvest`, atau`sys:internal`.  
Jika nama skema diberikan, tabel baru dibuat dalam skema itu (dengan asumsi pencipta memiliki akses ke skema). Nama tabel harus menjadi nama unik untuk skema itu. Jika tidak ada skema yang ditentukan, tabel dibuat dengan menggunakan skema database saat ini. Jika Anda membuat tabel sementara, Anda tidak dapat menentukan nama skema, karena tabel sementara ada dalam skema khusus.  
Beberapa tabel sementara dengan nama yang sama dapat ada pada saat yang sama dalam database yang sama jika mereka dibuat dalam sesi terpisah karena tabel ditetapkan ke skema yang berbeda. Untuk informasi selengkapnya tentang nama yang valid, lihat[Nama dan pengidentifikasi](r_names.md).

 *column\$1name*   
Nama kolom yang akan dibuat di tabel baru. Panjang maksimum untuk nama kolom adalah 127 byte; nama yang lebih panjang dipotong menjadi 127 byte. Anda dapat menggunakan karakter multibyte UTF-8 hingga maksimal empat byte. Jumlah maksimum kolom yang dapat Anda tentukan dalam satu tabel adalah 1.600. Untuk informasi selengkapnya tentang nama yang valid, lihat[Nama dan pengidentifikasi](r_names.md).  
Jika Anda membuat “tabel lebar”, berhati-hatilah agar daftar kolom Anda tidak melebihi batas lebar baris untuk hasil perantara selama pemuatan dan pemrosesan kueri. Untuk informasi selengkapnya, lihat [Catatan penggunaan](#r_CREATE_TABLE_usage).

 *data\$1type*   
Tipe data kolom yang sedang dibuat. Untuk kolom CHAR dan VARCHAR, Anda dapat menggunakan kata kunci MAX alih-alih mendeklarasikan panjang maksimum. MAX menetapkan panjang maksimum untuk 4.096 byte untuk CHAR atau 65535 byte untuk VARCHAR. Ukuran maksimum objek GEOMETRI adalah 1.048.447 byte.  
Untuk informasi tentang tipe data yang didukung Amazon Redshift, lihat. [Jenis Data](c_Supported_data_types.md)

DEFAULT\$1EXPR *DEFAULT*   <a name="create-table-default"></a>
Klausul yang menetapkan nilai data default untuk kolom. Tipe data *default\$1expr* harus cocok dengan tipe data kolom. Nilai DEFAULT harus berupa ekspresi bebas variabel. Subkueri, referensi silang ke kolom lain dalam tabel saat ini, dan fungsi yang ditentukan pengguna tidak diperbolehkan.  
Ekspresi *default\$1expr* digunakan dalam setiap operasi INSERT yang tidak menentukan nilai untuk kolom. Jika tidak ada nilai default yang ditentukan, nilai default untuk kolom adalah null.  
*Jika operasi COPY dengan daftar kolom yang ditentukan menghilangkan kolom yang memiliki nilai DEFAULT, perintah COPY menyisipkan nilai default\$1expr.*

IDENTITAS (*benih*, *langkah*)   <a name="identity-clause"></a>
Klausul yang menentukan bahwa kolom adalah kolom IDENTITAS. Kolom IDENTITAS berisi nilai autogenerated unik. Tipe data untuk kolom IDENTITY harus berupa INT atau BIGINT.   
Saat Anda menambahkan baris menggunakan `INSERT INTO [tablename] VALUES()` pernyataan `INSERT` atau, nilai-nilai ini dimulai dengan nilai yang ditentukan sebagai *benih* dan kenaikan dengan nomor yang ditentukan sebagai *langkah*.   
Saat Anda memuat tabel menggunakan `COPY` pernyataan `INSERT INTO [tablename] SELECT * FROM` atau, data dimuat secara paralel dan didistribusikan ke irisan simpul. Untuk memastikan bahwa nilai identitasnya unik, Amazon Redshift melewatkan sejumlah nilai saat membuat nilai identitas. Nilai identitas unik, tetapi urutannya mungkin tidak cocok dengan urutan dalam file sumber. 

DIHASILKAN SECARA DEFAULT SEBAGAI IDENTITAS (*seed*, *step*)   <a name="identity-generated-bydefault-clause"></a>
Klausul yang menentukan bahwa kolom adalah kolom IDENTITAS default dan memungkinkan Anda untuk secara otomatis menetapkan nilai unik ke kolom. Tipe data untuk kolom IDENTITY harus berupa INT atau BIGINT. Saat Anda menambahkan baris tanpa nilai, nilai-nilai ini dimulai dengan nilai yang ditentukan sebagai *benih* dan kenaikan dengan nomor yang ditentukan sebagai *langkah*. Untuk informasi tentang bagaimana nilai dihasilkan, lihat[IDENTITY](#identity-clause).  
Juga, selama INSERT, UPDATE, atau COPY Anda dapat memberikan nilai tanpa EXPLICIT\$1IDS. Amazon Redshift menggunakan nilai tersebut untuk menyisipkan ke kolom identitas alih-alih menggunakan nilai yang dihasilkan sistem. Nilai dapat berupa duplikat, nilai kurang dari benih, atau nilai antara nilai langkah. Amazon Redshift tidak memeriksa keunikan nilai di kolom. Memberikan nilai tidak memengaruhi nilai yang dihasilkan sistem berikutnya.  
Jika Anda memerlukan keunikan di kolom, jangan tambahkan nilai duplikat. Sebagai gantinya, tambahkan nilai unik yang kurang dari benih atau di antara nilai langkah.
Perlu diingat hal berikut tentang kolom identitas default:   
+ Kolom identitas default BUKAN NULL. NULL tidak dapat dimasukkan.
+ Untuk menyisipkan nilai yang dihasilkan ke kolom identitas default, gunakan kata kunci`DEFAULT`. 

  ```
  INSERT INTO tablename (identity-column-name) VALUES (DEFAULT);
  ```
+ Mengesampingkan nilai kolom identitas default tidak memengaruhi nilai yang dihasilkan berikutnya. 
+ Anda tidak dapat menambahkan kolom identitas default dengan pernyataan ALTER TABLE ADD COLUMN. 
+ Anda dapat menambahkan kolom identitas default dengan pernyataan ALTER TABLE APPEND. 

*PENGKODEAN PENGKODEAN*   
Pengkodean kompresi untuk kolom. ENCODE AUTO adalah default untuk tabel. Amazon Redshift secara otomatis mengelola pengkodean kompresi untuk semua kolom dalam tabel. Jika Anda menentukan pengkodean kompresi untuk kolom apa pun dalam tabel, tabel tidak lagi diatur ke ENCODE AUTO. Amazon Redshift tidak lagi secara otomatis mengelola pengkodean kompresi untuk semua kolom dalam tabel. Anda dapat menentukan opsi ENCODE AUTO untuk tabel untuk mengaktifkan Amazon Redshift untuk secara otomatis mengelola pengkodean kompresi untuk semua kolom dalam tabel.  
  
Amazon Redshift secara otomatis menetapkan pengkodean kompresi awal ke kolom yang tidak Anda tentukan pengkodean kompresi sebagai berikut:  
+ Semua kolom dalam tabel sementara diberi kompresi RAW secara default.
+ Kolom yang didefinisikan sebagai kunci pengurutan diberi kompresi RAW.
+ Kolom yang didefinisikan sebagai tipe data BOOLEAN, REAL, PRESISI GANDA, GEOMETRI, atau GEOGRAFI diberi kompresi RAW.
+ Kolom yang didefinisikan sebagai SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIME, TIMETZ, TIMESTAMP, atau TIMESTAMPTZ diberi kompresi. AZ64
+ Kolom yang didefinisikan sebagai CHAR, VARCHAR, atau VARBYTE diberi kompresi LZO.
Jika Anda tidak ingin kolom dikompresi, tentukan secara eksplisit pengkodean RAW.
 [compression encodings](c_Compression_encodings.md#compression-encoding-list) berikut didukung:  
+ AZ64
+ BYTEDIKTUS
+ DELTA
+ DELTA32K
+ LZO
+ MOSTLY8
+ MOSTLY16
+ MOSTLY32
+ RAW (tanpa kompresi)
+ RUNLENGTH
+ TEXT255
+ TEXT32K
+ ZSTD

DISTKEY  
Kata kunci yang menentukan bahwa kolom adalah kunci distribusi untuk tabel. Hanya satu kolom dalam tabel yang dapat menjadi kunci distribusi. Anda dapat menggunakan kata kunci DISTKEY setelah nama kolom atau sebagai bagian dari definisi tabel dengan menggunakan sintaks DISTKEY (*column\$1name*). Salah satu metode memiliki efek yang sama. Untuk informasi selengkapnya, lihat parameter DISTSTYLE nanti dalam topik ini.  
Tipe data kolom kunci distribusi dapat berupa: BOOLEAN, NYATA, PRESISI GANDA, SMALLINT, INTEGER, BIGINT, DECIMAL, TANGGAL, WAKTU, TIMETZ, TIMESTAMP, atau TIMESTAMPTZ, CHAR, atau VARCHAR.

SORTKEY  
Kata kunci yang menentukan bahwa kolom adalah kunci sort untuk tabel. Saat data dimuat ke dalam tabel, data diurutkan berdasarkan satu atau beberapa kolom yang ditetapkan sebagai kunci pengurutan. Anda dapat menggunakan kata kunci SORTKEY setelah nama kolom untuk menentukan kunci pengurutan kolom tunggal, atau Anda dapat menentukan satu atau beberapa kolom sebagai kolom kunci sortir untuk tabel dengan menggunakan sintaks SORTKEY (*column\$1name* [,...]). Hanya kunci sortir majemuk yang dibuat dengan sintaks ini.  
Anda dapat menentukan maksimum 400 kolom SORTKEY per tabel.  
Tipe data dari kolom kunci sortir dapat berupa: BOOLEAN, NYATA, PRESISI GANDA, SMALLINT, INTEGER, BIGINT, DECIMAL, TANGGAL, WAKTU, TIMETZ, TIMESTAMP, atau TIMESTAMPTZ, CHAR, atau VARCHAR.

MENYUSUN \$1CASE\$1SENSITIVE \$1 CS \$1 CASE\$1INSENSITIVE \$1 CI\$1  
Klausa yang menentukan apakah pencarian string atau perbandingan pada kolom peka huruf besar/kecil atau tidak peka huruf besar/kecil. Nilai defaultnya sama dengan konfigurasi sensitivitas kasus saat ini dari database.  
COLLATE hanya didukung pada tipe data berbasis string, termasuk nilai CHAR, VARCHAR, dan string dalam kolom SUPER. Untuk detail tentang kueri data SUPER yang tidak peka huruf besar/kecil, lihat. [Kueri case-insensitive](query-super.md#case-insensitive-super-queries)  
Untuk menemukan informasi pemeriksaan database, gunakan perintah berikut:  

```
SELECT db_collation();
                     
db_collation
----------------
 case_sensitive
(1 row)
```
CASE\$1SENSITIVE dan CS dapat dipertukarkan dan menghasilkan hasil yang sama. Demikian pula, CASE\$1INSENSITIVE dan CI dapat dipertukarkan dan menghasilkan hasil yang sama.

TIDAK NULL \$1 NULL   
NOT NULL menentukan bahwa kolom tidak diperbolehkan untuk berisi nilai-nilai null. NULL, default, menentukan bahwa kolom menerima nilai null. Kolom IDENTITAS dinyatakan BUKAN NULL secara default.

UNIK  
Kata kunci yang menentukan bahwa kolom hanya dapat berisi nilai-nilai unik. Perilaku kendala tabel unik sama dengan batasan kolom, dengan kemampuan tambahan untuk menjangkau beberapa kolom. Untuk menentukan batasan tabel unik, gunakan sintaks UNIQUE (*column\$1name* [,...]).  
Kendala unik bersifat informasi dan tidak ditegakkan oleh sistem.

KUNCI UTAMA  
Kata kunci yang menentukan bahwa kolom adalah kunci utama untuk tabel. Hanya satu kolom yang dapat didefinisikan sebagai kunci utama dengan menggunakan definisi kolom. Untuk menentukan batasan tabel dengan kunci primer multi-kolom, gunakan sintaks PRIMARY KEY (*column\$1name* [,...]).  
Mengidentifikasi kolom sebagai kunci utama menyediakan metadata tentang desain skema. Kunci utama menyiratkan bahwa tabel lain dapat mengandalkan kumpulan kolom ini sebagai pengidentifikasi unik untuk baris. Satu kunci primer dapat ditentukan untuk tabel, apakah sebagai kendala kolom atau kendala tabel. Kendala kunci primer harus memberi nama satu set kolom yang berbeda dari kumpulan kolom lain yang dinamai oleh batasan unik yang ditentukan untuk tabel yang sama.  
Kolom KUNCI PRIMARY juga didefinisikan sebagai NOT NULL.  
Kendala kunci primer hanya bersifat informasi. Mereka tidak ditegakkan oleh sistem, tetapi mereka digunakan oleh perencana.

Referensi *reftable* [(*refcolumn*)]  
Klausul yang menentukan batasan kunci asing, yang menyiratkan bahwa kolom harus berisi hanya nilai yang cocok dengan nilai dalam kolom referensi dari beberapa baris tabel referensi. Kolom yang direferensikan harus berupa kolom kendala kunci unik atau primer dalam tabel yang direferensikan.   
 Kendala kunci asing hanya bersifat informasi. Mereka tidak ditegakkan oleh sistem, tetapi mereka digunakan oleh perencana. 

SUKA *parent\$1table* [\$1TERMASUK \$1 TIDAK TERMASUK\$1 DEFAULT]   <a name="create-table-like"></a>
Klausa yang menentukan tabel yang ada dari mana tabel baru secara otomatis menyalin nama kolom, tipe data, dan batasan NOT NULL. Tabel baru dan tabel induk dipisahkan, dan setiap perubahan yang dibuat pada tabel induk tidak diterapkan ke tabel baru. Ekspresi default untuk definisi kolom yang disalin disalin hanya jika INCLUDED DEFAULTS ditentukan. Perilaku default adalah untuk mengecualikan ekspresi default, sehingga semua kolom tabel baru memiliki default null.   
Tabel yang dibuat dengan opsi LIKE tidak mewarisi kendala kunci primer dan asing. Gaya distribusi, kunci pengurutan, BACKUP, dan properti NULL diwarisi oleh tabel LIKE, tetapi Anda tidak dapat secara eksplisit mengaturnya di CREATE TABLE... Pernyataan SEPERTI.

CADANGAN \$1YA \$1 TIDAK\$1   <a name="create-table-backup"></a>
Klausa yang menentukan apakah tabel harus disertakan dalam snapshot cluster otomatis dan manual.   
Untuk tabel, seperti tabel pementasan, yang tidak berisi data penting, tentukan BACKUP NO untuk menghemat waktu pemrosesan saat membuat snapshot dan memulihkan dari snapshot dan untuk mengurangi ruang penyimpanan di Amazon Simple Storage Service. Pengaturan BACKUP NO tidak berpengaruh pada replikasi otomatis data ke node lain di dalam cluster, sehingga tabel dengan BACKUP NO ditentukan dipulihkan jika terjadi kegagalan node. Defaultnya adalah BACKUP YA.  
Tabel tanpa cadangan tidak didukung untuk klaster yang RA3 disediakan dan grup kerja Amazon Redshift Tanpa Server. Tabel yang ditandai sebagai no-backup di RA3 cluster atau grup kerja tanpa server diperlakukan sebagai tabel permanen yang akan selalu dicadangkan saat mengambil snapshot, dan selalu dipulihkan saat memulihkan dari snapshot. Untuk menghindari biaya snapshot untuk tabel tanpa cadangan, potong sebelum mengambil snapshot.

DISTSTYLE \$1OTOMATIS \$1 GENAP \$1 KUNCI \$1 SEMUA\$1  
Kata kunci yang mendefinisikan gaya distribusi data untuk seluruh tabel. Amazon Redshift mendistribusikan baris tabel ke node komputasi sesuai dengan gaya distribusi yang ditentukan untuk tabel. Defaultnya adalah AUTO.  
Gaya distribusi yang Anda pilih untuk tabel mempengaruhi kinerja keseluruhan database Anda. Untuk informasi selengkapnya, lihat [Distribusi data untuk optimasi kueri](t_Distributing_data.md). Gaya distribusi yang mungkin adalah sebagai berikut:  
+ AUTO: Amazon Redshift menetapkan gaya distribusi optimal berdasarkan data tabel. Misalnya, jika gaya distribusi AUTO ditentukan, Amazon Redshift awalnya menetapkan gaya distribusi ALL ke tabel kecil. Saat tabel bertambah besar, Amazon Redshift mungkin mengubah gaya distribusi menjadi KEY, memilih kunci utama (atau kolom kunci primer komposit) sebagai DISTKEY. Jika tabel tumbuh lebih besar dan tidak ada kolom yang cocok untuk menjadi DISTKEY, Amazon Redshift mengubah gaya distribusi menjadi EVEN. Perubahan gaya distribusi terjadi di latar belakang dengan dampak minimal pada kueri pengguna. 

  Untuk melihat gaya distribusi yang diterapkan ke tabel, kueri tabel katalog sistem PG\$1CLASS. Untuk informasi selengkapnya, lihat [Melihat gaya distribusi](viewing-distribution-styles.md). 
+ BAHKAN: Data dalam tabel tersebar merata di seluruh node dalam cluster dalam distribusi round-robin. Baris IDs digunakan untuk menentukan distribusi, dan kira-kira jumlah baris yang sama didistribusikan ke setiap node. 
+ KUNCI: Data didistribusikan oleh nilai-nilai di kolom DISTKEY. Saat Anda mengatur kolom gabungan dari tabel gabungan sebagai kunci distribusi, baris penggabungan dari kedua tabel ditempatkan pada node komputasi. Saat data dikumpulkan, pengoptimal dapat melakukan penggabungan dengan lebih efisien. Jika Anda menentukan KUNCI DISTYLE, Anda harus memberi nama kolom DISTKEY, baik untuk tabel atau sebagai bagian dari definisi kolom. Untuk informasi selengkapnya, lihat parameter DISTKEY sebelumnya dalam topik ini.
+  ALL: Salinan seluruh tabel didistribusikan ke setiap node. Gaya distribusi ini memastikan bahwa semua baris yang diperlukan untuk gabungan apa pun tersedia di setiap node, tetapi ini mengalikan persyaratan penyimpanan dan meningkatkan waktu pemuatan dan pemeliharaan untuk tabel. Distribusi ALL dapat meningkatkan waktu eksekusi bila digunakan dengan tabel dimensi tertentu di mana distribusi KEY tidak sesuai, tetapi peningkatan kinerja harus dipertimbangkan terhadap biaya pemeliharaan. 

DISTKEY (*column\$1name*)  
Kendala yang menentukan kolom yang akan digunakan sebagai kunci distribusi untuk tabel. Anda dapat menggunakan kata kunci DISTKEY setelah nama kolom atau sebagai bagian dari definisi tabel, dengan menggunakan sintaks DISTKEY (*column\$1name*). Salah satu metode memiliki efek yang sama. Untuk informasi selengkapnya, lihat parameter DISTSTYLE sebelumnya dalam topik ini.

[SENYAWA \$1 DISISIPKAN] SORTKEY (*column\$1name* [,...]) \$1 [SORTKEY AUTO]  
Menentukan satu atau lebih kunci sortir untuk tabel. Saat data dimuat ke dalam tabel, data diurutkan berdasarkan kolom yang ditetapkan sebagai kunci pengurutan. Anda dapat menggunakan kata kunci SORTKEY setelah nama kolom untuk menentukan kunci pengurutan kolom tunggal, atau Anda dapat menentukan satu atau beberapa kolom sebagai kolom kunci sortir untuk tabel dengan menggunakan sintaks. `SORTKEY (column_name [ , ... ] )`   
Anda dapat secara opsional menentukan gaya pengurutan COMPOUND atau INTERLEAVED. Jika Anda menentukan SORTKEY dengan kolom defaultnya adalah COMPOUND. Untuk informasi selengkapnya, lihat [Sortir kunci](t_Sorting_data.md).  
Jika Anda tidak menentukan opsi kunci pengurutan apa pun, defaultnya adalah AUTO.  
Anda dapat menentukan maksimum 400 kolom COMPOUND SORTKEY atau 8 kolom SORTKEY INTERLEAVED per tabel.     
MOBIL  
Menentukan bahwa Amazon Redshift menetapkan kunci pengurutan optimal berdasarkan data tabel. Misalnya, jika kunci pengurutan AUTO ditentukan, Amazon Redshift awalnya tidak menetapkan kunci pengurutan ke tabel. Jika Amazon Redshift menentukan bahwa kunci pengurutan akan meningkatkan kinerja kueri, Amazon Redshift mungkin mengubah kunci pengurutan tabel Anda. Penyortiran tabel yang sebenarnya dilakukan dengan pengurutan tabel otomatis. Untuk informasi selengkapnya, lihat [Penyortiran tabel otomatis](t_Reclaiming_storage_space202.md#automatic-table-sort).   
Amazon Redshift tidak mengubah tabel yang memiliki kunci pengurutan atau distribusi yang ada. Dengan satu pengecualian, jika tabel memiliki kunci distribusi yang belum pernah digunakan dalam JOIN, maka kuncinya mungkin berubah jika Amazon Redshift menentukan ada kunci yang lebih baik.   
Untuk melihat kunci pengurutan tabel, kueri tampilan katalog sistem SVV\$1TABLE\$1INFO. Untuk informasi selengkapnya, lihat [SVV\$1TABLE\$1INFO](r_SVV_TABLE_INFO.md). Untuk melihat rekomendasi Amazon Redshift Advisor untuk tabel, kueri tampilan katalog sistem SVV\$1ALTER\$1TABLE\$1REKOMENDASIONS. Untuk informasi selengkapnya, lihat [SVV\$1ALTER\$1TABLE\$1RECOMMENDATIONS](r_SVV_ALTER_TABLE_RECOMMENDATIONS.md). Untuk melihat tindakan yang diambil oleh Amazon Redshift, kueri tampilan katalog sistem SVL\$1AUTO\$1WORKER\$1ACTION. Untuk informasi selengkapnya, lihat [SVL\$1AUTO\$1WORKER\$1ACTION](r_SVL_AUTO_WORKER_ACTION.md).   
SENYAWA  
Menentukan bahwa data diurutkan menggunakan kunci majemuk yang terdiri dari semua kolom yang terdaftar, dalam urutan mereka terdaftar. Kunci sortir majemuk paling berguna ketika kueri memindai baris sesuai dengan urutan kolom pengurutan. Manfaat kinerja penyortiran dengan kunci majemuk berkurang ketika kueri bergantung pada kolom pengurutan sekunder. Anda dapat menentukan maksimum 400 kolom COMPOUND SORTKEY per tabel.   
DISISIPKAN  
Menentukan bahwa data diurutkan menggunakan kunci sortir disisipkan. Maksimal delapan kolom dapat ditentukan untuk kunci sortir yang disisipkan.   
Pengurutan yang disisipkan memberikan bobot yang sama untuk setiap kolom, atau subset kolom, dalam kunci pengurutan, sehingga kueri tidak bergantung pada urutan kolom dalam kunci pengurutan. Saat kueri menggunakan satu atau beberapa kolom pengurutan sekunder, penyortiran interleaved secara signifikan meningkatkan kinerja kueri. Penyortiran interleaved membawa biaya overhead yang kecil untuk operasi pemuatan data dan penyedotan debu.   
Jangan gunakan kunci sortir interleaved pada kolom dengan atribut yang meningkat secara monoton, seperti kolom identitas, tanggal, atau stempel waktu.

MENYANDIKAN OTOMATIS   
Mengaktifkan Amazon Redshift untuk secara otomatis menyesuaikan jenis pengkodean untuk semua kolom dalam tabel untuk mengoptimalkan kinerja kueri. ENCODE AUTO mempertahankan jenis encode awal yang Anda tentukan dalam membuat tabel. Kemudian, jika Amazon Redshift menentukan bahwa jenis pengkodean baru dapat meningkatkan kinerja kueri, Amazon Redshift dapat mengubah jenis pengkodean kolom tabel. ENCODE AUTO adalah default jika Anda tidak menentukan jenis pengkodean pada kolom apa pun dalam tabel.

UNIK (*column\$1name* [,...])  
Kendala yang menentukan bahwa sekelompok satu atau lebih kolom tabel hanya dapat berisi nilai unik. Perilaku kendala tabel unik sama dengan batasan kolom, dengan kemampuan tambahan untuk menjangkau beberapa kolom. Dalam konteks batasan unik, nilai null tidak dianggap sama. Setiap batasan tabel unik harus memberi nama satu set kolom yang berbeda dari kumpulan kolom yang dinamai oleh kendala kunci unik atau primer lainnya yang ditentukan untuk tabel.   
 Kendala unik bersifat informasi dan tidak ditegakkan oleh sistem. 

KUNCI UTAMA (*column\$1name* [,...])  
Kendala yang menentukan bahwa kolom atau sejumlah kolom tabel hanya dapat berisi nilai non-null yang unik (nonduplikat). Mengidentifikasi satu set kolom sebagai kunci utama juga menyediakan metadata tentang desain skema. Kunci utama menyiratkan bahwa tabel lain dapat mengandalkan kumpulan kolom ini sebagai pengidentifikasi unik untuk baris. Satu kunci primer dapat ditentukan untuk tabel, apakah sebagai kendala kolom tunggal atau kendala tabel. Kendala kunci primer harus memberi nama satu set kolom yang berbeda dari kumpulan kolom lain yang dinamai oleh batasan unik yang ditentukan untuk tabel yang sama.   
 Kendala kunci primer hanya bersifat informasi. Mereka tidak ditegakkan oleh sistem, tetapi mereka digunakan oleh perencana. 

*KUNCI ASING (*column\$1name* [,...]) REFERENSI *reftable [(refcolumn*)]*   
Kendala yang menentukan batasan kunci asing, yang mengharuskan sekelompok satu atau lebih kolom tabel baru hanya harus berisi nilai yang cocok dengan nilai dalam kolom atau kolom referensi dari beberapa baris tabel referensi. Jika *refcolumn* dihilangkan, kunci utama *reftable* digunakan. Kolom yang direferensikan harus berupa kolom dari kendala kunci unik atau primer dalam tabel yang direferensikan.  
Kendala kunci asing hanya bersifat informasi. Mereka tidak ditegakkan oleh sistem, tetapi mereka digunakan oleh perencana.

## Catatan penggunaan
<a name="r_CREATE_TABLE_usage"></a>

Keunikan, kunci utama, dan kendala kunci asing hanya bersifat informasi; *mereka tidak diberlakukan oleh Amazon Redshift* saat Anda mengisi tabel. Misalnya, jika Anda menyisipkan data ke dalam tabel dengan dependensi, sisipan dapat berhasil bahkan jika itu melanggar batasan. Meskipun demikian, kunci utama dan kunci asing digunakan sebagai petunjuk perencanaan dan mereka harus dinyatakan jika proses ETL Anda atau beberapa proses lain dalam aplikasi Anda menegakkan integritasnya. Untuk informasi tentang cara menjatuhkan tabel dengan dependensi, lihat. [MEJA DROP](r_DROP_TABLE.md)

### Batas dan kuota
<a name="r_CREATE_TABLE_usage-limits"></a>

Pertimbangkan batasan berikut saat Anda membuat tabel.
+ Ada batas untuk jumlah maksimum tabel dalam cluster dengan tipe node. Untuk informasi selengkapnya, lihat [Batas](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) dalam Panduan *Manajemen Pergeseran Merah Amazon*. 
+ Jumlah maksimum karakter untuk nama tabel adalah 127. 
+ Jumlah maksimum kolom yang dapat Anda tentukan dalam satu tabel adalah 1.600. 
+ Jumlah maksimum kolom SORTKEY yang dapat Anda tentukan dalam satu tabel adalah 400. 

### Ringkasan pengaturan tingkat kolom dan pengaturan tingkat tabel
<a name="r_CREATE_TABLE_usage-summary_of_settings"></a>

 Beberapa atribut dan pengaturan dapat diatur pada tingkat kolom atau di tingkat tabel. Dalam beberapa kasus, pengaturan atribut atau kendala pada tingkat kolom atau di tingkat tabel memiliki efek yang sama. Dalam kasus lain, mereka menghasilkan hasil yang berbeda. 

 Daftar berikut merangkum pengaturan tingkat kolom dan tingkat tabel: 

DISTKEY  
Tidak ada perbedaan efek apakah diatur pada tingkat kolom atau di tingkat tabel.   
Jika DISTKEY diatur, baik di tingkat kolom atau di tingkat tabel, DISTSTYLE harus diatur ke KEY atau tidak diatur sama sekali. DISTSTYLE hanya dapat diatur di tingkat tabel. 

SORTKEY  
Jika diatur pada tingkat kolom, SORTKEY harus berupa kolom tunggal. Jika SORTKEY diatur pada tingkat tabel, satu atau lebih kolom dapat membentuk senyawa atau kunci sortir komposit yang disisipkan. 

COLLATE CASE\$1SENSITIVE \$1 MENYUSUN CASE\$1INSENSITIVE  
Amazon Redshift tidak mendukung perubahan konfigurasi sensitivitas huruf besar untuk kolom. Saat Anda menambahkan kolom baru ke tabel, Amazon Redshift menggunakan nilai default untuk sensitivitas huruf besar/kecil. Amazon Redshift tidak mendukung kata kunci COLLATE saat menambahkan kolom baru.  
Untuk informasi tentang cara membuat database menggunakan pemeriksaan database, lihat. [BUAT BASIS DATA](r_CREATE_DATABASE.md)  
Untuk informasi tentang fungsi COLLATE, lihat[Fungsi COLLATE](r_COLLATE.md).

UNIK  
Pada tingkat kolom, satu atau lebih kunci dapat diatur ke UNIK; kendala UNIK berlaku untuk setiap kolom secara individual. Jika UNIQUE diatur pada tingkat tabel, satu atau lebih kolom dapat membuat batasan UNIQUE komposit. 

KUNCI UTAMA  
Jika diatur pada tingkat kolom, PRIMARY KEY harus berupa kolom tunggal. Jika PRIMARY KEY diatur pada tingkat tabel, satu atau lebih kolom dapat membentuk kunci primer komposit. 

KUNCI ASING  
Tidak ada perbedaan dalam efek apakah FOREIGN KEY diatur pada tingkat kolom atau di tingkat tabel. Pada tingkat kolom, sintaksnya hanya dapat dikembalikan [`REFERENCES`*(*refcolumn**)]. 

### Distribusi data yang masuk
<a name="r_CREATE_TABLE_usage-distribution-of-incoming-data"></a>

Ketika skema distribusi hash dari data yang masuk cocok dengan tabel target, tidak ada distribusi fisik data yang sebenarnya diperlukan ketika data dimuat. Misalnya, jika kunci distribusi diatur untuk tabel baru dan data dimasukkan dari tabel lain yang didistribusikan pada kolom kunci yang sama, data dimuat di tempat, menggunakan node dan irisan yang sama. Namun, jika tabel sumber dan target disetel ke distribusi EVEN, data didistribusikan kembali ke dalam tabel target.

### Tabel lebar
<a name="r_CREATE_TABLE_usage-wide-tables"></a>

Anda mungkin dapat membuat tabel yang sangat lebar tetapi tidak dapat melakukan pemrosesan kueri, seperti pernyataan INSERT atau SELECT, di atas meja. Lebar maksimum tabel dengan kolom lebar tetap, seperti CHAR, adalah 64KB - 1 (atau 65535 byte). Jika tabel menyertakan kolom VARCHAR, tabel dapat memiliki lebar deklarasi yang lebih besar tanpa mengembalikan kesalahan karena kolom VARCHARS tidak menyumbangkan lebar deklarasi penuhnya ke batas pemrosesan kueri yang dihitung. Batas pemrosesan kueri yang efektif dengan kolom VARCHAR akan bervariasi berdasarkan sejumlah faktor.

Jika tabel terlalu lebar untuk memasukkan atau memilih, Anda menerima kesalahan berikut.

```
ERROR:  8001
DETAIL:  The combined length of columns processed in the SQL statement
exceeded the query-processing limit of 65535 characters (pid:7627)
```

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

Untuk contoh yang menunjukkan cara menggunakan perintah CREATE TABLE, lihat [Contoh](r_CREATE_TABLE_examples.md) topiknya.

# Contoh
<a name="r_CREATE_TABLE_examples"></a>

Contoh berikut menunjukkan berbagai atribut kolom dan tabel dalam pernyataan Amazon Redshift CREATE TABLE. Untuk informasi selengkapnya tentang CREATE TABLE, termasuk definisi parameter, lihat[CREATE TABLE](r_CREATE_TABLE_NEW.md).

Banyak contoh menggunakan tabel dan data dari kumpulan data sampel *TICKIT*. Untuk informasi selengkapnya, lihat [Contoh database](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html).

 Anda dapat mengawali nama tabel dengan nama database dan nama skema dalam perintah CREATE TABLE. Misalnya,`dev_database.public.sales`. Nama database harus berupa database yang terhubung dengan Anda. Setiap upaya untuk membuat objek database di database lain gagal dengan dan kesalahan operasi tidak valid.

## Buat tabel dengan kunci distribusi, kunci sortir majemuk, dan kompresi
<a name="r_CREATE_TABLE_examples-create-a-table-with-distribution-key"></a>

Contoh berikut membuat tabel PENJUALAN dalam database TICKIT dengan kompresi didefinisikan untuk beberapa kolom. LISTID dideklarasikan sebagai kunci distribusi, dan LISTID dan SELLERID dideklarasikan sebagai kunci sortir majemuk multicolumn. Kendala kunci primer dan kunci asing juga ditentukan untuk tabel. Sebelum membuat tabel dalam contoh, Anda mungkin perlu menambahkan batasan UNIK ke setiap kolom yang direferensikan oleh kunci asing, jika batasan tidak ada.

```
create table sales(
salesid integer not null,
listid integer not null,
sellerid integer not null,
buyerid integer not null,
eventid integer not null encode mostly16,
dateid smallint not null,
qtysold smallint not null encode mostly8,
pricepaid decimal(8,2) encode delta32k,
commission decimal(8,2) encode delta32k,
saletime timestamp,
primary key(salesid),
foreign key(listid) references listing(listid),
foreign key(sellerid) references users(userid),
foreign key(buyerid) references users(userid),
foreign key(dateid) references date(dateid))
distkey(listid)
compound sortkey(listid,sellerid);
```

Hasilnya mengikuti:

```
schemaname | tablename | column     | type                        | encoding | distkey | sortkey | notnull
-----------+-----------+------------+-----------------------------+----------+---------+---------+--------
public     | sales     | salesid    | integer                     | lzo      | false   |       0 | true
public     | sales     | listid     | integer                     | none     | true    |       1 | true
public     | sales     | sellerid   | integer                     | none     | false   |       2 | true
public     | sales     | buyerid    | integer                     | lzo      | false   |       0 | true
public     | sales     | eventid    | integer                     | mostly16 | false   |       0 | true
public     | sales     | dateid     | smallint                    | lzo      | false   |       0 | true
public     | sales     | qtysold    | smallint                    | mostly8  | false   |       0 | true
public     | sales     | pricepaid  | numeric(8,2)                | delta32k | false   |       0 | false
public     | sales     | commission | numeric(8,2)                | delta32k | false   |       0 | false
public     | sales     | saletime   | timestamp without time zone | lzo      | false   |       0 | false
```

Contoh berikut membuat tabel t1 dengan kolom col1 case-insensitive.

```
create table T1 (
  col1 Varchar(20) collate case_insensitive
 );
            
insert into T1 values ('bob'), ('john'), ('Tom'), ('JOHN'), ('Bob');
```

Kueri tabel:

```
select * from T1 where col1 = 'John';
   
col1
------
 john
 JOHN
(2 rows)
```

## Buat tabel menggunakan kunci sortir yang disisipkan
<a name="CREATE_TABLE_NEW-create-a-table-using-interleaved-sortkey"></a>

Contoh berikut membuat tabel CUSTOMER dengan kunci sort interleaved.

```
create table customer_interleaved (
  c_custkey     	integer        not null,
  c_name        	varchar(25)    not null,
  c_address     	varchar(25)    not null,
  c_city        	varchar(10)    not null,
  c_nation      	varchar(15)    not null,
  c_region      	varchar(12)    not null,
  c_phone       	varchar(15)    not null,
  c_mktsegment      varchar(10)    not null)
diststyle all
interleaved sortkey (c_custkey, c_city, c_mktsegment);
```

## Buat tabel menggunakan IF NOT EXISTS
<a name="CREATE_TABLE_NEW-create-a-table-using-if-not-exists"></a>

 Contoh berikut membuat tabel CITIES, atau tidak melakukan apa-apa dan mengembalikan pesan jika sudah ada:

```
create table if not exists cities(
cityid integer not null,
city varchar(100) not null,
state char(2) not null);
```

## Buat tabel dengan distribusi SEMUA
<a name="CREATE_TABLE_NEW-create-a-table-with-all-distribution"></a>

 Contoh berikut membuat tabel VENUE dengan distribusi ALL. 

```
create table venue(
venueid smallint not null,
venuename varchar(100),
venuecity varchar(30),
venuestate char(2),
venueseats integer,
primary key(venueid))
diststyle all;
```

## Buat Tabel dengan distribusi EVEN
<a name="r_CREATE_TABLE_NEW-create-a-table-with-default-even-distribution"></a>

Contoh berikut membuat tabel yang disebut MYEVENT dengan tiga kolom. 

```
create table myevent(
eventid int,
eventname varchar(200),
eventcity varchar(30))
diststyle even;
```

Tabel didistribusikan secara merata dan tidak diurutkan. Tabel tidak memiliki kolom DISTKEY atau SORTKEY yang dinyatakan. 

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'myevent';
            
  column   |          type          | encoding | distkey | sortkey
-----------+------------------------+----------+---------+---------
 eventid   | integer                | lzo      | f       |       0
 eventname | character varying(200) | lzo      | f       |       0
 eventcity | character varying(30)  | lzo      | f       |       0
(3 rows)
```

## Buat tabel sementara yang SEPERTI tabel lain
<a name="r_CREATE_TABLE_NEW-create-a-temporary-table-that-is-like-another-table"></a>

Contoh berikut membuat tabel sementara yang disebut TEMPEVENT, yang mewarisi kolomnya dari tabel EVENT. 

```
create temp table tempevent(like event); 
```

Tabel ini juga mewarisi atribut DISTKEY dan SORTKEY dari tabel induknya: 

```
select "column", type, encoding, distkey, sortkey
 from pg_table_def where tablename = 'tempevent';

  column   |            type             | encoding | distkey | sortkey
-----------+-----------------------------+----------+---------+---------
 eventid   | integer                     | none     | t       |       1
 venueid   | smallint                    | none     | f       |       0
 catid     | smallint                    | none     | f       |       0
 dateid    | smallint                    | none     | f       |       0
 eventname | character varying(200)      | lzo      | f       |       0
 starttime | timestamp without time zone | bytedict | f       |       0
(6 rows)
```

## Buat tabel dengan kolom IDENTITY
<a name="r_CREATE_TABLE_NEW-create-a-table-with-an-identity-column"></a>

Contoh berikut membuat tabel bernama VENUE\$1IDENT, yang memiliki kolom IDENTITY bernama VENUEID. Kolom ini dimulai dengan 0 dan bertambah 1 untuk setiap catatan. VENUEID juga dinyatakan sebagai kunci utama tabel. 

```
create table venue_ident(venueid bigint identity(0, 1),
venuename varchar(100),
venuecity varchar(30),
venuestate char(2),
venueseats integer,
primary key(venueid));
```

## Buat tabel dengan kolom IDENTITAS default
<a name="r_CREATE_TABLE_NEW-create-a-table-with-default-identity-column"></a>

Contoh berikut membuat tabel bernama`t1`. Tabel ini memiliki kolom IDENTITY bernama `hist_id` dan kolom IDENTITY default bernama`base_id`. 

```
CREATE TABLE t1(
  hist_id BIGINT IDENTITY NOT NULL, /* Cannot be overridden */
  base_id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, /* Can be overridden */
  business_key varchar(10) ,
  some_field varchar(10)
);
```

Memasukkan baris ke dalam tabel menunjukkan bahwa keduanya `hist_id` dan `base_id` nilai dihasilkan. 

```
INSERT INTO T1 (business_key, some_field) values ('A','MM');
```

```
SELECT * FROM t1;

 hist_id | base_id | business_key | some_field
---------+---------+--------------+------------
       1 |       1 | A            | MM
```

Memasukkan baris kedua menunjukkan bahwa nilai default untuk `base_id` dihasilkan.

```
INSERT INTO T1 (base_id, business_key, some_field) values (DEFAULT, 'B','MNOP');
```

```
SELECT * FROM t1;

 hist_id | base_id | business_key | some_field
---------+---------+--------------+------------
       1 |       1 | A            | MM
       2 |       2 | B            | MNOP
```

Menyisipkan baris ketiga menunjukkan bahwa nilai untuk `base_id` tidak perlu unik.

```
INSERT INTO T1 (base_id, business_key, some_field) values (2,'B','MNNN');
```

```
SELECT * FROM t1;
            
 hist_id | base_id | business_key | some_field
---------+---------+--------------+------------
       1 |       1 | A            | MM
       2 |       2 | B            | MNOP
       3 |       2 | B            | MNNN
```

## Buat tabel dengan nilai kolom DEFAULT
<a name="r_CREATE_TABLE_NEW-create-a-table-with-default-column-values"></a>

Contoh berikut membuat tabel CATEGORYDEF yang mendeklarasikan nilai default untuk setiap kolom: 

```
create table categorydef(
catid smallint not null default 0,
catgroup varchar(10) default 'Special',
catname varchar(10) default 'Other',
catdesc varchar(50) default 'Special events',
primary key(catid));
            
insert into categorydef values(default,default,default,default);
```

```
select * from categorydef;
            
 catid | catgroup | catname |    catdesc
-------+----------+---------+----------------
     0 | Special  | Other   | Special events
(1 row)
```

## Opsi DISTYLE, DISTKEY, dan SORTKEY
<a name="r_CREATE_TABLE_NEW-diststyle-distkey-and-sortkey-options"></a>

Contoh berikut menunjukkan cara kerja opsi DISTKEY, SORTKEY, dan DISTSTYLE. Dalam contoh ini, COL1 adalah kunci distribusi; oleh karena itu, gaya distribusi harus diatur ke KEY atau tidak diatur. Secara default, tabel tidak memiliki kunci pengurutan sehingga tidak diurutkan: 

```
create table t1(col1 int distkey, col2 int) diststyle key;
```

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 't1';

column |  type   | encoding | distkey | sortkey
-------+---------+----------+---------+---------
col1   | integer | az64     | t       | 0
col2   | integer | az64     | f       | 0
```

Dalam contoh berikut, kolom yang sama didefinisikan sebagai kunci distribusi dan kunci sortir. Sekali lagi, gaya distribusi harus diatur ke KEY atau tidak diatur. 

```
create table t2(col1 int distkey sortkey, col2 int);
```

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 't2';
            
column |  type   | encoding | distkey | sortkey
-------+---------+----------+---------+---------
col1   | integer | none     | t       | 1
col2   | integer | az64     | f       | 0
```

Dalam contoh berikut, tidak ada kolom yang ditetapkan sebagai kunci distribusi, COL2 ditetapkan sebagai kunci sortir, dan gaya distribusi diatur ke SEMUA: 

```
create table t3(col1 int, col2 int sortkey) diststyle all;
```

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 't3';
            
Column |  Type   | Encoding | DistKey | SortKey
-------+---------+----------+---------+--------
col1   | integer | az64     | f       | 0
col2   | integer | none     | f       | 1
```

Dalam contoh berikut, gaya distribusi diatur ke EVEN dan tidak ada kunci pengurutan didefinisikan secara eksplisit; oleh karena itu tabel didistribusikan secara merata tetapi tidak diurutkan. 

```
create table t4(col1 int, col2 int) diststyle even;
```

```
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 't4';
            
             column |  type   |encoding | distkey | sortkey
--------+---------+---------+---------+--------
col1    | integer | az64    | f       | 0
col2    | integer | az64    | f       | 0
```

## Buat tabel dengan opsi ENCODE AUTO
<a name="r_CREATE_TABLE_NEW-create-a-table-with-encode-option"></a>

Contoh berikut membuat tabel `t1` dengan pengkodean kompresi otomatis. ENCODE AUTO adalah default untuk tabel ketika Anda tidak menentukan jenis pengkodean untuk kolom apa pun.

```
create table t1(c0 int, c1 varchar);
```

Contoh berikut membuat tabel `t2` dengan pengkodean kompresi otomatis dengan menentukan ENCODE AUTO.

```
create table t2(c0 int, c1 varchar) encode auto;
```

Contoh berikut membuat tabel `t3` dengan pengkodean kompresi otomatis dengan menentukan ENCODE AUTO. Kolom `c0` didefinisikan dengan jenis pengkodean awal DELTA. Amazon Redshift dapat mengubah pengkodean jika pengkodean lain memberikan kinerja kueri yang lebih baik.

```
create table t3(c0 int encode delta, c1 varchar) encode auto;
```

Contoh berikut membuat tabel `t4` dengan pengkodean kompresi otomatis dengan menentukan ENCODE AUTO. Kolom `c0` didefinisikan dengan pengkodean awal DELTA, dan kolom `c1` didefinisikan dengan pengkodean awal LZO. Amazon Redshift dapat mengubah pengkodean ini jika pengkodean lain memberikan kinerja kueri yang lebih baik.

```
create table t4(c0 int encode delta, c1 varchar encode lzo) encode auto;
```