Fungsi constraint Primary Key di tabel database MySQL


Masih membahas tentang fungsi constraint dan penerapannya. Kali ini saya akan membahas constraint Primary Key. Constraint Primary Key ini mirip dengan constraint UNIQUE karena dalam satu kolom tidak boleh ada nilai yang sama. 

Salah satu perbedaannya adalah constraint UNIQUE memperbolehkan NULL. Sedangkan di Primary Key tidak memperbolehkan data disimpan dalam bentuk NULL (kosong). 

Selain itu dalam satu tabel hanya ada satu kolom dengan constraint Primary Key. Jadi tidak mungkin ada tabel yang memiliki 2 constraint Primary Key, berbeda dengan constraint UNIQUE yang dapat dipasang di beberapa kolom. Karena Primary Key ini berfungsi sebagai acuan dalam merujuk suatu baris data. Dalam kehidupan nyata Primary Key ini mirip nomer plat kendaraan, bentuk dan model boleh mirip, tapi identitas tetap berbeda. Identitas tersebut yang dimaksud dengan Primary Key.

Untuk lebih jelasnya silakan ikuti tutorial di bawah:

Pertama saya akan masuk dulu ke dalam database dengan perintah:

 mysql -u root -p

masukkan password kemudian saya pilih database belajar dengan perintah:

 use belajar;

setelah itu saya akan buat tabel baru dengan nama belajar_primarykey dengan query di bawah:

 CREATE TABLE belajar_primarykey (
 nomer INT(2) PRIMARY KEY, 
 merk TEXT,
 tipe TEXT,
 warna TEXT
 );

dari hasil query di atas itu akan terbuat sebuah tabel dengan struktur berikut:


kemudian saya akan masukkan beberapa data dengan query dibawah ini:

 INSERT INTO belajar_primarykey 
 VALUES 
 (1, 'honda', 'sedan', 'hitam'),
 (2, 'mitsubishi', 'sedan', 'hitam'),
 (3, 'toyota', 'sedan', 'hitam'),
 (4, 'honda', 'sedan', 'hitam');

maka hasil dari query tersebut hasilnya seperti yang tampak pada gambar di bawah ini:


dari gambar di atas terlihat bahwa saya berhasil memasukkan data sebanyak 4 baris ke dalam tabel belajar_primarykey.

Untuk melihat data yang berhasil masuk, saya menjalankan query di bawah ini:

 SELECT * FROM belajar_primarykey;

maka data hasil dari query di atas adalah:


anda bisa melihat bahwa di data yang tertampil pada tabel belajar_primarykey di atas ada 2 data yang sama yang terekam di baris 1 dan baris 4.

Jika kita ingin menghapus salah satu record dari merk honda, kita bisa memanfaatkan kolom nomer untuk menunjuk salah satu data yang akan dihapus. Sehingga hanya salah satu merk honda yang terhapus bukan 2 data sekaligus. 

Oh iya kolom yang memiliki constraint Primary Key ini juga tidak bisa dimasukkan data NULL dan data dengan nilai yang sama yang sudah tersimpan sebelumnya.

Saya akan mencobanya dengan memasukkan data yang sama melalui query di bawah ini:

 INSERT INTO belajar_primarykey 
 VALUES 
 (4, 'datsun', 'LCGC', 'hitam');

maka ketika di jalankan di database MySQL, hasilnya ERROR ada duplikat data di kolom nomer yang memiliki constraint Primary Key seperti yang ditunjukkan gambar di bawah:


lalu jika saya mencoba memasukkan data NULL dengan query berikut:

 INSERT INTO belajar_primarykey 
 VALUES 
 (NULL, 'nissan', 'minivan', 'hitam');

maka ketika dijalankan hasilnya juga akan ERROR karena constraint primary key tidak menerima input data NULL di kolom yang dipasangi constraint tersebut seperti yang terlihat pada gambar di bawah ini:


Bagaimana, lebih tahu bukan fungsi constraint Primary Key dengan tutorial ini? Terima kasih telah berkunjung ya :-)


Comments