PostgreSQL

Cara Mengatur Kunci Utama PostgreSQL Auto-increment?

Cara Mengatur Kunci Utama PostgreSQL Auto-increment?
Mungkin ada saat-saat di mana 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 peningkatan 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:

>> CREATE TABLE table_name ( id SERIAL );

Mari kita lihat deklarasi CREATE TABLE secara lebih rinci:

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 "tes", 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 bidang 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 “Test” dengan dua kolom “id” dan “name”. Kolom "id" telah didefinisikan sebagai kolom kunci utama karena tipe datanya adalah SERIAL. Di sisi lain, kolom "nama" 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 CREATE TABLE (id SERIAL PRIMARY KEY, nama TEXT NOT NULL);

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

>> INSERT INTO Test(name) VALUES ('Aqsha'), ('Rimsha'), ('Khan');

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

>> PILIH * DARI Tes;

Dari output di bawah ini, Anda dapat melihat bahwa kolom "id" secara otomatis memiliki beberapa nilai di dalamnya meskipun kami belum menambahkan nilai apa pun dari perintah INSERT karena tipe data SERIAL yang telah kami tentukan untuk kolom "id". 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":

>> INSERT INTO Test(name) VALUES ('Hassam') RETURNING id;

Dengan memeriksa catatan tabel "Test" 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. Kita akan menggunakan nama kolom “id” pada perintah INSERT, dan pada bagian VALUES, kita akan memberikan kata kunci DEFAULT sebagai nilainya. Kueri di bawah ini akan berfungsi sama saat dieksekusi.

>> INSERT INTO Test(id, name) VALUES (DEFAULT, 'Raza');

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 kolom "id" telah bertambah secara default.

Contoh 04:

Nomor urut bidang 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:

>> SELECT currval(pg_get_serial_sequence('Tes', 'id'));

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

Kesimpulan:

Dalam tutorial panduan ini, kami telah mendemonstrasikan cara menggunakan pseudo-type SERIAL untuk auto-increment 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.

OpenTTD vs Simutrans
Membuat simulasi transportasi Anda sendiri bisa menyenangkan, santai, dan sangat menarik. Itulah mengapa Anda perlu memastikan bahwa Anda mencoba game...
Tutorial OpenTTD
OpenTTD adalah salah satu game simulasi bisnis paling populer di luar sana. Dalam game ini, Anda perlu membuat bisnis transportasi yang luar biasa. Na...
SuperTuxKart untuk Linux
SuperTuxKart adalah judul hebat yang dirancang untuk memberi Anda pengalaman Mario Kart gratis di sistem Linux Anda. Ini cukup menantang dan menyenang...