PostgreSQL - AUTO INCREMENT
Halo, para penggemar basis data yang sedang berkembang! Hari ini, kita akan mendalamkan salah satu fitur yang paling berguna di PostgreSQL: fungsi AUTO INCREMENT. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk menghidahkan Anda melalui topik ini, bahkan jika Anda sangat baru dalam pemrograman. Jadi, ambil secangkir kopi, dan mari kita mulai petualangan belajar ini bersama!
Apa Itu AUTO INCREMENT?
Sebelum kita melompat ke hal-hal kecil, mari kita pahami apa arti sebenarnya AUTO INCREMENT. Bayangkan Anda sedang mengatur sebuah pesta besar dan perlu memberikan nomor unik kepada setiap tamu. Bukankah lebih baik jika Anda memiliki penghitung magis yang secara otomatis meningkat untuk setiap tamu baru? Itu sebenarnya apa yang AUTO INCREMENT lakukan di basis data!
Dalam PostgreSQL, AUTO INCREMENT adalah fitur yang secara otomatis menghasilkan nomor unik untuk setiap baris baru dalam sebuah tabel. Ini sangat berguna ketika Anda memerlukan pengenal unik untuk setiap rekord, seperti ID pelanggan atau nomor pesanan.
Sintaks
Sekarang, mari kita lihat bagaimana kita bisa menggunakan AUTO INCREMENT di PostgreSQL. Sintaksnya cukup mudah, tetapi jangan khawatir jika awalnya terlihat sedikit menakutkan. Kita akan membongkar itu langkah demi langkah.
CREATE TABLE table_name (
column_name SERIAL PRIMARY KEY,
other_column1 data_type,
other_column2 data_type,
...
);
Mari kitauraikan sintaks ini:
-
CREATE TABLE table_name
: Bagian ini menciptakan tabel baru dengan nama yang Anda tentukan. -
column_name SERIAL PRIMARY KEY
: Ini adalah bagian tempat magis terjadi!
-
column_name
adalah nama yang Anda inginkan untuk kolom peningkat otomatis Anda. -
SERIAL
adalah tipe data khusus PostgreSQL yang menciptakan kolom integer peningkat otomatis. -
PRIMARY KEY
memastikan bahwa kolom ini akan mengandung nilai unik dan dapat digunakan untuk mengidentifikasi setiap baris.
- Sisa baris mendefinisikan kolom lain di tabel Anda.
Contoh
Mari kita terapkan ini ke contoh dunia nyata. Bayangkan kita sedang menciptakan basis data untuk kecil perpustakaan. Kita ingin mencatat buku, dan setiap buku harus memiliki ID unik.
CREATE TABLE books (
book_id SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(100) NOT NULL,
publication_year INTEGER
);
Dalam contoh ini:
-
book_id
adalah kolom peningkat otomatis. Itu akan secara otomatis memberikan nomor unik ke setiap buku baru. -
title
danauthor
adalah kolom VARCHAR untuk menyimpan judul buku dan nama penulis. -
publication_year
adalah kolom INTEGER untuk menyimpan tahun terbit buku.
Sekarang, mari kita tambahkan beberapa buku ke tabel kita:
INSERT INTO books (title, author, publication_year)
VALUES ('To Kill a Mockingbird', 'Harper Lee', 1960);
INSERT INTO books (title, author, publication_year)
VALUES ('1984', 'George Orwell', 1949);
INSERT INTO books (title, author, publication_year)
VALUES ('The Great Gatsby', 'F. Scott Fitzgerald', 1925);
Perhatikan bahwa kita tidak menentukan nilai untuk book_id
. PostgreSQL akan secara otomatis menghasilkan nilai ini untuk kita. Jika kita sekarang menjalankan perintah:
SELECT * FROM books;
Kita mungkin melihat sesuatu seperti ini:
book_id | title | author | publication_year |
---|---|---|---|
1 | To Kill a Mockingbird | Harper Lee | 1960 |
2 | 1984 | George Orwell | 1949 |
3 | The Great Gatsby | F. Scott Fitzgerald | 1925 |
Seperti yang Anda lihat, PostgreSQL secara otomatis memberikan nilai book_id
unik ke setiap baris, mulai dari 1 dan meningkatkan 1 untuk setiap entri baru.
Dalam Penyebab
Sekarang, Anda mungkin bertanya-tanya, "Bagaimana PostgreSQL tahu nomor berikutnya yang akan digunakan?" Pernyataan bagus! Dalam penyelesaian, PostgreSQL menggunakan urutan untuk mencatat nomor berikutnya yang tersedia.
Ketika Anda menggunakan tipe data SERIAL
, PostgreSQL secara otomatis menciptakan urutan untuk kolom itu. Urutan adalah seperti penghitung yang mengingat nomor terakhir yang dikeluarkan dan tahu untuk memberikan nomor berikutnya saat diminta.
Anda bahkan bisa melihat urutan ini jika Anda melihat detil tabel:
\d books
Perintah ini akan menunjukkan sesuatu seperti ini:
Table "public.books"
Column | Type | Collation | Nullable | Default
-----------------+------------------------+-----------+----------+------------------------------
book_id | integer | | not null | nextval('books_book_id_seq'::regclass)
title | character varying(100) | | not null |
author | character varying(100) | | not null |
publication_year| integer | | |
Indexes:
"books_pkey" PRIMARY KEY, btree (book_id)
Lihat bagian nextval('books_book_id_seq'::regclass)
? Itu adalah PostgreSQL menggunakan urutan untuk mendapatkan nilai berikutnya untuk book_id
.
Catatan Peringatan
Meskipun AUTO INCREMENT sangat berguna, penting untuk ingat bahwa itu tidak menjamin nomor berurutan tanpa lubang. Jika Anda memasukkan baris dan kemudian menghapusnya, nomor itu tidak akan digunakan lagi. Ini sebenarnya hal yang bagus untuk integritas data, tapi itu adalah sesuatu yang perlu Anda ingat.
Sebagai contoh, jika kita menghapus buku kedua:
DELETE FROM books WHERE book_id = 2;
Dan kemudian memasukkan buku baru:
INSERT INTO books (title, author, publication_year)
VALUES ('Pride and Prejudice', 'Jane Austen', 1813);
Tabel kita mungkin terlihat seperti ini:
book_id | title | author | publication_year |
---|---|---|---|
1 | To Kill a Mockingbird | Harper Lee | 1960 |
3 | The Great Gatsby | F. Scott Fitzgerald | 1925 |
4 | Pride and Prejudice | Jane Austen | 1813 |
Perhatikan bahwa book_id
2 hilang, dan buku baru mendapat book_id
4.
Kesimpulan
Dan itu adalah nya, teman-teman! Anda telah belajar tentang AUTO INCREMENT di PostgreSQL. Kita telah menelusuri apa itu, bagaimana menggunakannya, dan bahkan melihat bagaimana itu bekerja di dalam. Ingat, AUTO INCREMENT seperti seorang petugas perpustakaan yang baik yang secara otomatis memberikan nomor unik ke setiap buku baru yang datang, menyelamatkan Anda dari kerja mencatat secara manual.
Sebagai Anda terus menjalankan perjalanan Anda di dunia basis data, Anda akan menemukan AUTO INCREMENT sebagai teman yang dapat dipercaya, membuat hidup Anda mudah saat Anda perlu memberikan pengenal unik. Terus latihan, tetap curiga, dan sebelum Anda mengetahui, Anda akan menjadi ahli PostgreSQL!
Happy coding, dan semoga query Anda selalu mengembalikan hasil yang Anda harapkan!
Credits: Image by storyset