Bagaimana Menyiapkan Kunci Utama Penambahan Auto PostgreSQL?

How Setup Postgresql Auto Increment Primary Key



Mungkin ada saat di mana anda membangun dan memelihara tabel di PostgreSQL ketika anda menginginkan nilai-nilai tertentu untuk lajur yang dihasilkan berdasarkan permintaan. Perkara ini berlaku terutamanya untuk lajur id yang berfungsi sebagai kunci utama jadual. Nasib baik, jenis pseudo SERIAL memungkinkan menjadikan siri bilangan bulat automatik yang bertambah senang. Siri adalah sejenis objek pangkalan data dalam PostgreSQL yang menghasilkan serangkaian indeks atau bilangan bulat. Urutan PostgreSQL menghasilkan rentetan bilangan bulat yang berbeza, menjadikannya sesuai untuk digunakan sebagai kunci utama ketika menghasilkan jadual baru. Kami akan menunjukkan kepada anda apa menu kenaikan automatik dalam PostgreSQL dan kami akan menggunakan jenis pseudo SERIAL di sepanjang panduan ini.

Sintaks:

Sintaks umum untuk membuat kunci utama kenaikan automatik adalah seperti berikut:







>>BUAT Jadual_nama jadual( IDSIRI);

Mari kita lihat deklarasi CREATE TABLE dengan lebih terperinci:



  • PostgreSQL menghasilkan entiti siri terlebih dahulu. Ia menghasilkan nilai seterusnya dalam siri dan menetapkannya sebagai nilai rujukan lalai medan.
  • PostgreSQL menerapkan sekatan tersirat TIDAK NULL pada medan id kerana satu siri menghasilkan nilai berangka.
  • Medan id akan diperuntukkan sebagai pemegang siri ini. Sekiranya medan id atau jadual itu sendiri dihilangkan, urutannya akan dibuang.

Untuk mendapatkan konsep kenaikan automatik, pastikan PostgreSQL dipasang dan dikonfigurasi pada sistem anda sebelum meneruskan ilustrasi dalam panduan ini. Buka shell baris perintah PostgreSQL dari desktop. Tambahkan nama pelayan anda yang ingin anda kerjakan, jika tidak, biarkan ia menjadi lalai. Tuliskan nama pangkalan data yang terdapat di pelayan anda tempat anda ingin mengusahakannya. Sekiranya anda tidak mahu mengubahnya, biarkan sebagai lalai. Kami akan menggunakan pangkalan data ujian, sebab itulah kami telah menambahkannya. Anda juga boleh menggunakan port lalai 5432, tetapi anda juga boleh mengubahnya. Pada akhirnya, anda harus memberikan nama pengguna untuk pangkalan data yang anda pilih. Biarkan ia lalai jika anda tidak mahu mengubahnya. Ketik kata laluan anda untuk nama pengguna yang dipilih dan tekan Enter dari papan kekunci untuk mula menggunakan shell perintah.







Menggunakan Kata Kunci SERIAL sebagai Jenis Data:

Semasa kita membuat jadual, kita biasanya tidak menambahkan kata kunci SERIAL di medan lajur utama. Ini bermaksud kita harus menambahkan nilai ke lajur kunci utama semasa menggunakan penyataan INSERT. Tetapi apabila kita menggunakan kata kunci SERIAL dalam pertanyaan kita semasa membuat jadual, kita tidak perlu menambahkan nilai lajur utama sambil memasukkan nilai. Mari kita melihatnya.

Contoh 01:

Buat Ujian jadual dengan dua lajur id dan nama. Id lajur telah didefinisikan sebagai lajur kunci utama kerana jenis datanya adalah SERIAL. Sebaliknya, nama lajur ditakrifkan sebagai jenis data TEKS BUKAN NULL. Cuba arahan di bawah ini untuk membuat jadual dan jadual akan dibuat dengan cekap seperti yang dilihat pada gambar di bawah.



>>UCAPAN JADUAL( IDKUNCI PRIMARY SERIAL, namakan TEKS TIDAK NILAI);

Mari kita masukkan beberapa nilai ke nama lajur TEST jadual yang baru dibuat. Kami tidak akan menambah nilai pada lajur id. Anda dapat melihat bahawa nilai telah berjaya dimasukkan menggunakan perintah INSERT seperti yang dinyatakan di bawah.

>>INSERT INTO Test(nama)NILAI(‘Aqsa’),('Rimsha'),(‘Khan’);

Sudah tiba masanya untuk memeriksa rekod jadual ‘Test’. Cuba arahan SELECT di bawah pada command shell.

>>PILIH*DARI Ujian;

Dari output di bawah, anda dapat melihat bahawa lajur id secara automatik mendapat beberapa nilai di dalamnya walaupun kami belum menambahkan nilai dari perintah INSERT kerana jenis data SERIAL yang telah kami tentukan untuk id lajur. Ini adalah bagaimana jenis data SERIAL berfungsi sendiri.

Contoh 02:

Kaedah lain untuk memeriksa nilai lajur jenis data SERIAL adalah dengan menggunakan kata kunci RETURNING dalam arahan INSERT. Deklarasi di bawah membuat baris baru dalam jadual Uji dan menghasilkan nilai untuk medan id:

>>INSERT INTO Test(nama)NILAI('Hassam')PULANGANID;

Dengan memeriksa rekod Uji jadual menggunakan pertanyaan SELECT, kami mendapat output di bawah seperti yang ditunjukkan dalam gambar. Rekod kelima telah berjaya ditambahkan ke jadual.

>>PILIH*DARI Ujian;

Contoh 03:

Versi alternatif dari pertanyaan sisipan di atas adalah menggunakan kata kunci DEFAULT. Kami akan menggunakan nama id lajur dalam perintah INSERT, dan di bahagian NILAI, kami akan memberikannya kata kunci DEFAULT sebagai nilainya. Pertanyaan di bawah akan berfungsi sama semasa pelaksanaan.

>>INSERT INTO Test(ID, nama)NILAI(DEFAULT, ‘Perlumbaan’);

Mari periksa semula jadual menggunakan pertanyaan PILIH seperti berikut:

>>PILIH*DARI Ujian;

Anda dapat melihat dari output di bawah, nilai baru telah ditambahkan sementara id lajur telah dinaikkan secara lalai.

Contoh 04:

Nombor urutan medan lajur SERIAL terdapat dalam jadual di PostgreSQL. Kaedah pg_get_serial_sequence () digunakan untuk mencapainya. Kita harus menggunakan fungsi currval () bersama dengan kaedah pg_get_serial_sequence (). Dalam pertanyaan ini, kami akan memberikan nama jadual dan nama lajur SERIALnya dalam parameter fungsi pg_get_serial_sequence (). Seperti yang anda lihat, kami telah menetapkan Ujian jadual dan id lajur. Kaedah ini digunakan dalam contoh pertanyaan di bawah:

>>PILIH kurva(pg_get_serial_ berikutnya(‘Ujian’, ‘ID'));

Perlu diperhatikan bahawa fungsi kurva () kami membantu kami mengekstrak nilai urutan terbaru, iaitu 5. Gambar di bawah adalah gambaran bagaimana penampilannya.

Kesimpulan:

Dalam tutorial panduan ini, kami telah menunjukkan cara menggunakan jenis pseudo SERIAL untuk kenaikan automatik dalam PostgreSQL. Menggunakan siri dalam PostgreSQL, mudah untuk membuat sekumpulan nombor yang meningkat secara automatik. Mudah-mudahan, anda dapat menerapkan medan SERIAL pada keterangan jadual menggunakan ilustrasi kami sebagai rujukan.