

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

# `ALTER SEQUENCE`
<a name="alter-sequence-syntax-support"></a>

`ALTER SEQUENCE`— mengubah definisi generator urutan.

**penting**  
Saat menggunakan urutan, nilai cache harus dipertimbangkan dengan cermat. Untuk informasi selengkapnya, lihat info penting di [`CREATE SEQUENCE`](create-sequence-syntax-support.md) halaman.  
Untuk panduan tentang cara terbaik menggunakan urutan berdasarkan pola beban kerja, lihat. [Bekerja dengan urutan dan kolom identitas](sequences-identity-columns-working-with.md)

## Sintaksis yang didukung
<a name="alter-sequence-supported-syntax"></a>

```
ALTER SEQUENCE [ IF EXISTS ] name
    [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ [ NO ] CYCLE ]
    [ START [ WITH ] start ]
    [ RESTART [ [ WITH ] restart ] ]
    [ CACHE cache ]
    [ OWNED BY { table_name.column_name | NONE } ]
ALTER SEQUENCE [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER SEQUENCE [ IF EXISTS ] name RENAME TO new_name
ALTER SEQUENCE [ IF EXISTS ] name SET SCHEMA new_schema

where cache is 1 or cache >= 65536
```

## Deskripsi
<a name="alter-sequence-description"></a>

`ALTER SEQUENCE`mengubah parameter generator urutan yang ada. Parameter apa pun yang tidak secara khusus ditetapkan dalam `ALTER SEQUENCE` perintah mempertahankan pengaturan sebelumnya.

Anda harus memiliki urutan untuk digunakan`ALTER SEQUENCE`. Untuk mengubah skema urutan, Anda juga harus memiliki `CREATE` hak istimewa pada skema baru. Untuk mengubah pemilik, Anda harus `SET ROLE` dapat memiliki peran baru, dan peran itu harus memiliki `CREATE` hak istimewa pada skema urutan. (Pembatasan ini memberlakukan bahwa mengubah pemilik tidak melakukan apa pun yang tidak dapat Anda lakukan dengan menjatuhkan dan membuat ulang urutan. Namun, superuser dapat mengubah kepemilikan urutan apa pun.)

## Parameter
<a name="alter-sequence-parameters"></a>

***name***  
Nama (opsional schema-qualified) dari urutan yang akan diubah.

**`IF EXISTS`**  
Jangan melempar kesalahan jika urutannya tidak ada. Pemberitahuan dikeluarkan dalam kasus ini.

***increment***  
Klausul `INCREMENT BY increment` ini opsional. Nilai positif akan membuat urutan naik, yang negatif menjadi urutan menurun. Jika tidak ditentukan, nilai kenaikan lama akan dipertahankan.

***minvalue* / `NO MINVALUE`**  
Klausa opsional `MINVALUE minvalue` menentukan nilai minimum yang dapat dihasilkan oleh urutan. Jika `NO MINVALUE` ditentukan, default 1 dan nilai minimum tipe data untuk urutan naik dan turun, masing-masing, akan digunakan. Jika tidak ada opsi yang ditentukan, nilai minimum saat ini akan dipertahankan.

***maxvalue* / `NO MAXVALUE`**  
Klausa opsional `MAXVALUE maxvalue` menentukan nilai maksimum untuk urutan. Jika `NO MAXVALUE` ditentukan, default dari nilai maksimum tipe data dan -1 untuk urutan naik dan turun, masing-masing, akan digunakan. Jika tidak ada opsi yang ditentukan, nilai maksimum saat ini akan dipertahankan.

**`CYCLE`**  
Kata `CYCLE` kunci opsional dapat digunakan untuk mengaktifkan urutan untuk membungkus ketika *maxvalue* atau *minvalue* telah dicapai oleh urutan naik atau turun masing-masing. Jika batas tercapai, nomor berikutnya yang dihasilkan akan menjadi *minvalue* atau*maxvalue*, masing-masing.

**`NO CYCLE`**  
Jika kata `NO CYCLE` kunci opsional ditentukan, panggilan apa pun `nextval` setelah urutan mencapai nilai maksimumnya akan mengembalikan kesalahan. Jika tidak `NO CYCLE` ada `CYCLE` atau ditentukan, perilaku siklus lama akan dipertahankan.

***start***  
Klausa opsional `START WITH start` mengubah nilai awal urutan yang direkam. Ini tidak berpengaruh pada nilai urutan saat ini; itu hanya menetapkan nilai yang akan digunakan `ALTER SEQUENCE RESTART` perintah future.

***restart***  
Klausa opsional `RESTART [ WITH restart ]` mengubah nilai urutan saat ini. Ini mirip dengan memanggil `setval` fungsi dengan `is_called` =`false`: nilai yang ditentukan akan dikembalikan oleh panggilan berikutnya dari`nextval`. Menulis `RESTART` tanpa *restart* nilai setara dengan memasok nilai awal yang direkam oleh `CREATE SEQUENCE` atau terakhir ditetapkan oleh`ALTER SEQUENCE START WITH`.  
Berbeda dengan `setval` panggilan, `RESTART` operasi pada urutan bersifat transaksional dan memblokir transaksi bersamaan dari mendapatkan nomor dari urutan yang sama. Jika itu bukan mode operasi yang diinginkan, `setval` harus digunakan.

***cache***  
Klausul `CACHE cache` ini memungkinkan nomor urut untuk dialokasikan sebelumnya dan disimpan dalam memori untuk akses yang lebih cepat. Nilai harus berupa 1 atau beberapa nilai >= 65536. Jika tidak ditentukan, nilai cache lama akan dipertahankan. Untuk informasi selengkapnya tentang perilaku cache, lihat panduan di bawah[`CREATE SEQUENCE`](create-sequence-syntax-support.md).

**`OWNED BY table_name.column_name` / `OWNED BY NONE`**  
`OWNED BY`Opsi ini menyebabkan urutan dikaitkan dengan kolom tabel tertentu, sehingga jika kolom itu (atau seluruh tabelnya) dijatuhkan, urutan akan secara otomatis turun juga. Jika ditentukan, asosiasi ini menggantikan asosiasi yang ditentukan sebelumnya untuk urutan tersebut. Tabel yang ditentukan harus memiliki pemilik yang sama dan berada dalam skema yang sama dengan urutannya. Menentukan `OWNED BY NONE` menghapus asosiasi yang ada, membuat urutan “berdiri bebas”.

***new\$1owner***  
Nama pengguna dari pemilik baru urutan.

***new\$1name***  
Nama baru untuk urutan.

***new\$1schema***  
Skema baru untuk urutan.

## Catatan
<a name="alter-sequence-notes"></a>

`ALTER SEQUENCE`tidak akan segera mempengaruhi `nextval` hasil di backend, selain yang sekarang, yang memiliki nilai urutan yang telah dialokasikan sebelumnya (di-cache). Mereka akan menggunakan semua nilai yang di-cache sebelum memperhatikan parameter pembuatan urutan yang diubah. Backend saat ini akan segera terpengaruh.

`ALTER SEQUENCE`tidak mempengaruhi `currval` status untuk urutan.

`ALTER SEQUENCE`dapat menyebabkan transaksi lain ke OCC.

Untuk alasan historis, `ALTER TABLE` dapat digunakan dengan urutan juga; tetapi satu-satunya varian `ALTER TABLE` yang diizinkan dengan urutan setara dengan bentuk yang ditunjukkan di atas.

## Contoh
<a name="alter-sequence-examples"></a>

Mulai ulang urutan yang disebut`serial`, pada 105:

```
ALTER SEQUENCE serial RESTART WITH 105;
```

## Kompatibilitas
<a name="alter-sequence-compatibility"></a>

`ALTER SEQUENCE`sesuai dengan standar SQL, kecuali untuk,,,,`AS`, dan `SET SCHEMA` klausa `START WITH` `OWNED BY` `OWNER TO``RENAME TO`, yang merupakan ekstensi PostgreSQL.