Bagaimana untuk Menetapkan Semula Urutan dalam PostgreSQL

Bagaimana Untuk Menetapkan Semula Urutan Dalam Postgresql



Menggunakan urutan PostgreSQL ialah cara yang berkesan untuk bekerja dengan nilai kenaikan automatik, terutamanya untuk kunci utama. Apabila nilai mula tidak ditentukan, kenaikan automatik untuk INT akan bermula pada 0. Walau bagaimanapun, anda boleh menentukan nilai permulaan yang akan digunakan untuk jujukan dalam lajur kenaikan automatik anda.

Selain itu, jika anda mendapat situasi yang memerlukan anda menukar nilai seterusnya dalam jujukan, anda boleh menetapkan semula jujukan dengan cepat dan menentukan nilai yang hendak dimulakan untuk entri seterusnya dalam jadual. Semua butiran yang perlu anda ketahui mengenai cara menetapkan semula urutan dalam PostgreSQL diperincikan dalam siaran ini. Tengoklah!

Contoh tentang Cara Menetapkan Semula Urutan dalam PostgreSQL

Dengan lajur INT, anda boleh membuat jujukan autokenaikan dan menggunakannya sebagai kunci utama untuk jadual anda. Dengan cara itu, anda tidak perlu memasukkan nilainya apabila menjalankan pertanyaan INSERT kerana nilai integer akan dijana secara automatik. Dengan urutan dibuat, perintah ALTER SEQUENCE membolehkan anda memulakan semula urutan dan menentukan nilai permulaan baharu untuk entri baharu.







Untuk contoh ini, kami akan bekerja dengan jadual 'butiran_pengguna' berikut. Fokus kami ialah lajur 'id_pengguna' yang merupakan urutan kenaikan automatik bermula pada 100.





Untuk menyenaraikan urutan yang berbeza dalam pangkalan data anda, jalankan arahan berikut:





\ds

Untuk kes kami, kami menyasarkan jujukan 'user_id'.



Untuk mendapatkan butiran lanjut tentang jujukan, jalankan pertanyaan 'pilih' seperti yang ditunjukkan dalam yang berikut:

PILIH * DARI nama_jujukan;

Kita dapat melihat bahawa nilai terakhir dalam jujukan sedia ada ialah 104. Kami menetapkan semula nilai ini dan menentukan nilai baharu yang akan ada pada entri baharu.

Untuk menetapkan semula urutan PostgreSQL, gunakan arahan berikut:

ALTER SEQUENCE sequence_name MULAKAN SEMULA DENGAN nilai;

Untuk kes kami, katakan bahawa kami ingin memulakan semula urutan dan memulakan entri baharu pada 20. Selepas menjalankan arahan berikut, kami mendapat output, seperti yang ditunjukkan dalam berikut, yang mengesahkan bahawa urutan telah diubah.

Jika kita menjalankan semula perintah sebelumnya untuk mendapatkan butiran urutan kita menggunakan pernyataan SELECT, kita dapat melihat bahawa 'last_value' baharu untuk kes ini ialah nilai yang kami tentukan dengan arahan ALTER.

Mari masukkan entri baharu ke dalam jadual kami untuk melihat apa yang berlaku. Imej berikut menunjukkan pertanyaan INSERT dan hasil yang kami dapat selepas menjalankan pernyataan SELECT. Perhatikan bagaimana entri baharu menetapkan 'id_pengguna' kepada 20. Semua entri baharu yang kami buat akan 'id_pengguna' mereka dijana berdasarkan nilai terakhir iaitu 20.

Jika kita membuat input lain, 'id_pengguna'nya ialah 21 dan urutan akan diteruskan menggunakan logik yang sama. Begitulah cara anda menetapkan semula urutan dalam PostgreSQL. Ambil perhatian bahawa arahan 'set semula' tidak menjejaskan rekod sedia ada. Ia hanya mentakrifkan nilai permulaan baharu untuk entri yang anda buat selepas menetapkan semula jujukan.

Kesimpulan

Dengan PostgreSQL, mempunyai cara untuk menjana nilai integer secara automatik dalam lajur kunci utama anda memudahkan perkara. Apabila anda mempunyai urutan sedia ada, anda boleh menggunakan URUTAN ALTER
arahan dengan pilihan MULAKAN SEMULA DENGAN untuk menentukan urutan yang anda mahu tetapkan semula dan nilai yang perlu ditetapkan sebagai nilai terakhir dalam jujukan. Dengan cara itu, entri baharu akan mempunyai nilai integer yang dijana berdasarkan nilai terakhir baharu. Rujuk kepada contoh yang dibentangkan untuk memahami cara menetapkan semula urutan PostgreSQL berfungsi.