Kunci utama adalah batasan yang menetapkan bahwa nilai dalam kolomnya harus (saling) unik dan bukan nol. Ini agar dapat dijamin untuk mengidentifikasi secara unik setiap baris dalam tabel, yang paling berguna ketika ingin membuat kunci asing yang merujuk ke tabel ini. Masih layak dimiliki jika Anda tidak memiliki tabel lain, karena ini akan mencegah tabel Anda masuk ke kondisi buruk di mana, misalnya, Anda memiliki lebih dari satu nilai sumber yang sama pada tanggal tertentu.
Bidang kunci utama hampir selalu memiliki indeks serta sering digunakan untuk pencarian dan GABUNG, tetapi kedua konsep tersebut terpisah.
Beberapa DBMS (misalnya MySQL, SQL Server) secara otomatis membuat indeks berkerumun pada kunci utama, yang berarti bahwa data dalam tabel diurutkan pada disk berdasarkan bidang yang terdiri dari kunci utama untuk membuat operasi umum di atas lebih cepat. Namun, postgres tidak melakukan ini secara default.
Anda dapat menentukan kunci utama pada pembuatan tabel menggunakan sintaks berikut:
create table datatable
(
date date,
yesterday real,
today real,
tomorrow real,
reading real,
source varchar,
PRIMARY KEY (source, date)
)
Anda juga dapat menambahkan bidang bilangan bulat baru yang bertambah secara otomatis untuk bertindak sebagai kunci utama Anda (umumnya disebut sebagai kunci pengganti atau kunci buatan ). Anda mungkin ingin melakukan ini jika Anda tidak memiliki kandidat bagus lainnya di item data Anda, tetapi ini juga dapat memiliki manfaat lain (misalnya, berpotensi GABUNG lebih cepat).
create table datatable
(
id serial primary key,
date date,
yesterday real,
today real,
tomorrow real,
reading real,
source varchar
)