

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

# `ALTER TABLE`
<a name="alter-table-syntax-support"></a>

`ALTER TABLE`mengubah definisi tabel.

```
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    action [, ... ]
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    RENAME [ COLUMN ] column_name TO new_column_name
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    RENAME CONSTRAINT constraint_name TO new_constraint_name
ALTER TABLE [ IF EXISTS ] name
    RENAME TO new_name
ALTER TABLE [ IF EXISTS ] name
    SET SCHEMA new_schema

where action is one of:

    ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type
    ADD table_constraint_using_index
    ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...]
    ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ]
    OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

and table_constraint_using_index is:

    [ CONSTRAINT constraint_name ]
    UNIQUE USING INDEX index_name
```

## Tindakan kolom identitas
<a name="alter-table-identity-columns"></a>

**`SET GENERATED { ALWAYS | BY DEFAULT }` / `SET {{sequence_option}}` / `RESTART`**  
Formulir ini mengubah apakah kolom adalah kolom identitas atau mengubah atribut generasi dari kolom identitas yang ada. Lihat [`CREATE TABLE`](create-table-syntax-support.md) untuk detail. Seperti`SET DEFAULT`, bentuk-bentuk ini hanya mempengaruhi perilaku berikutnya `INSERT` dan `UPDATE` perintah; mereka tidak menyebabkan baris yang sudah ada dalam tabel berubah.  
{{sequence\_option}}Ini adalah opsi yang didukung oleh [`ALTER SEQUENCE`](alter-sequence-syntax-support.md) seperti`INCREMENT BY`. Bentuk-bentuk ini mengubah urutan yang mendasari kolom identitas yang ada.

**`DROP IDENTITY [ IF EXISTS ]`**  
Formulir ini menghapus properti identitas dari kolom. Jika `DROP IDENTITY IF EXISTS` ditentukan dan kolom bukan kolom identitas, tidak ada kesalahan yang dilemparkan. Dalam hal ini pemberitahuan dikeluarkan sebagai gantinya.

## Tambahkan tindakan kendala
<a name="alter-table-add-constraint"></a>

**`ADD {{table_constraint_using_index}}`**  
Formulir ini menambahkan `UNIQUE` kendala baru ke tabel berdasarkan indeks unik yang ada. Semua kolom indeks akan dimasukkan dalam kendala.  
Indeks harus dalam `VALID` keadaan; menambahkan kendala unik menggunakan indeks saat indeks sedang dibangun tidak didukung.  
Jika nama kendala disediakan maka indeks akan diganti namanya agar sesuai dengan nama kendala. Jika tidak, kendala akan diberi nama sama dengan indeks.  
Setelah perintah ini dijalankan, indeks “dimiliki” oleh kendala, dengan cara yang sama seperti jika indeks telah dibangun oleh perintah biasa`CREATE UNIQUE INDEX ASYNC`. Secara khusus, menjatuhkan kendala akan membuat indeks menghilang juga.