Bagaimana Cara Mengatur Kunci Utama PostgreSQL Auto-increment?

How Setup Postgresql Auto Increment Primary Key



Ada kalanya Anda membuat dan memelihara tabel di PostgreSQL saat Anda menginginkan nilai tertentu untuk kolom yang dibuat berdasarkan permintaan. Ini terutama berlaku untuk kolom id yang bertindak sebagai kunci utama tabel. Untungnya, tipe semu SERIAL memungkinkan membuat deret bilangan bulat yang bertambah otomatis menjadi nyaman. Seri adalah jenis objek database di PostgreSQL yang menghasilkan serangkaian indeks atau bilangan bulat. Urutan PostgreSQL menghasilkan string bilangan bulat yang berbeda, sehingga cocok untuk digunakan sebagai kunci utama saat membuat tabel baru. Kami akan menunjukkan kepada Anda apa pena kenaikan otomatis di PostgreSQL dan kami akan menggunakan tipe semu SERIAL di seluruh panduan ini.

Sintaksis:

Sintaks umum untuk membuat kunci utama kenaikan otomatis adalah sebagai berikut:







>>BUAT TABEL nama_tabel( IndoSERIAL);

Mari kita lihat deklarasi CREATE TABLE secara lebih rinci:



  • PostgreSQL menghasilkan entitas seri terlebih dahulu. Ini menghasilkan nilai berikutnya dalam seri dan menetapkannya sebagai nilai referensi default bidang.
  • PostgreSQL menerapkan batasan implisit NOT NULL ke bidang id karena rangkaian menghasilkan nilai numerik.
  • Bidang id akan dialokasikan sebagai pemegang seri. Jika bidang id atau tabel itu sendiri dihilangkan, urutannya akan dibuang.

Untuk mendapatkan konsep peningkatan otomatis, pastikan PostgreSQL sudah terpasang dan dikonfigurasi di sistem Anda sebelum melanjutkan dengan ilustrasi dalam panduan ini. Buka shell baris perintah PostgreSQL dari desktop. Tambahkan nama server Anda yang ingin Anda kerjakan, jika tidak biarkan ke default. Tulis nama database yang ada di server Anda yang ingin Anda kerjakan. Jika Anda tidak ingin mengubahnya, biarkan sebagai default. Kami akan menggunakan database uji, itu sebabnya kami menambahkannya. Anda juga dapat bekerja pada port default 5432, tetapi Anda juga dapat mengubahnya. Pada akhirnya, Anda harus memberikan nama pengguna untuk database yang Anda pilih. Biarkan default jika Anda tidak ingin mengubahnya. Ketik kata sandi Anda untuk nama pengguna yang dipilih dan tekan Enter dari keyboard untuk mulai menggunakan shell perintah.







Menggunakan Kata Kunci SERIAL sebagai Tipe Data:

Saat kami membuat tabel, kami biasanya tidak menambahkan kata kunci SERIAL di kolom kolom utama. Ini berarti kita harus menambahkan nilai ke kolom kunci utama saat menggunakan pernyataan INSERT. Tetapi ketika kita menggunakan kata kunci SERIAL dalam kueri kita saat membuat tabel, kita tidak perlu menambahkan nilai kolom utama saat memasukkan nilai. Mari kita lihat sekilas.

Contoh 01:

Buat tabel Uji dengan dua kolom id dan nama. Id kolom telah didefinisikan sebagai kolom kunci utama karena tipe datanya adalah SERIAL. Di sisi lain, nama kolom didefinisikan sebagai tipe data TEXT NOT NULL. Coba perintah di bawah ini untuk membuat tabel dan tabel akan dibuat secara efisien seperti yang terlihat pada gambar di bawah ini.



>>Tes BUAT TABEL( IndoKUNCI UTAMA SERIAL, beri nama TEKS BUKAN NULL);

Mari kita masukkan beberapa nilai ke nama kolom dari tabel TEST yang baru dibuat. Kami tidak akan menambahkan nilai apa pun ke id kolom. Anda dapat melihat bahwa nilai telah berhasil dimasukkan menggunakan perintah INSERT seperti yang dinyatakan di bawah ini.

>>MASUKKAN KE Tes(nama)NILAI('Aqsha'),(‘Rimsha’),('Khan');

Saatnya untuk memeriksa catatan tabel 'Tes'. Coba instruksi SELECT di bawah ini di shell perintah.

>>PILIH*DARI Tes;

Dari output di bawah ini, Anda dapat melihat bahwa id kolom secara otomatis mendapatkan beberapa nilai di dalamnya meskipun kami belum menambahkan nilai apa pun dari perintah INSERT karena tipe data SERIAL yang telah kami tentukan untuk id kolom. Ini adalah bagaimana tipe data SERIAL bekerja sendiri.

Contoh 02:

Cara lain untuk memeriksa nilai kolom tipe data SERIAL adalah dengan menggunakan kata kunci RETURNING pada perintah INSERT. Deklarasi di bawah ini membuat baris baru di tabel Test dan menghasilkan nilai untuk bidang id:

>>MASUKKAN KE DALAM Tes(nama)NILAI('Hasam')KEMBALIIndo;

Dengan memeriksa catatan tabel Uji menggunakan kueri SELECT, kami mendapatkan output di bawah ini seperti yang ditampilkan pada gambar. Catatan kelima telah ditambahkan secara efisien ke tabel.

>>PILIH*DARI Tes;

Contoh 03:

Versi alternatif dari kueri penyisipan di atas menggunakan kata kunci DEFAULT. Kami akan menggunakan nama kolom id dalam perintah INSERT, dan di bagian VALUES, kami akan memberikan kata kunci DEFAULT sebagai nilainya. Kueri di bawah ini akan berfungsi sama saat dieksekusi.

>>MASUKKAN KE DALAM Tes(Indo, nama)NILAI(DEFAULT, 'Balapan');

Mari kita periksa kembali tabel menggunakan query SELECT sebagai berikut:

>>PILIH*DARI Tes;

Anda dapat melihat dari output di bawah ini, nilai baru telah ditambahkan sementara id kolom telah bertambah secara default.

Contoh 04:

Nomor urut kolom kolom SERIAL dapat ditemukan dalam tabel di PostgreSQL. Metode pg_get_serial_sequence() digunakan untuk mencapai ini. Kita harus menggunakan fungsi currval() bersama dengan metode pg_get_serial_sequence(). Dalam kueri ini, kami akan memberikan nama tabel dan nama kolom SERIAL dalam parameter fungsi pg_get_serial_sequence(). Seperti yang Anda lihat, kami telah menentukan tabel Test dan kolom id. Metode ini digunakan dalam contoh kueri di bawah ini:

>>PILIH kurva(pg_get_serial_sequence('Tes', 'Indo'));

Perlu dicatat bahwa fungsi currval() kami membantu kami untuk mengekstrak nilai urutan terbaru, yaitu 5. Gambar di bawah ini adalah ilustrasi seperti apa tampilannya.

Kesimpulan:

Dalam tutorial panduan ini, kami telah menunjukkan cara menggunakan pseudo-type SERIAL untuk penambahan otomatis di PostgreSQL. Menggunakan seri di PostgreSQL, mudah untuk membuat kumpulan angka yang bertambah secara otomatis. Semoga, Anda dapat menerapkan bidang SERIAL ke deskripsi tabel menggunakan ilustrasi kami sebagai referensi.