{tocify} $title={Daftar Isi} Show Pendahuluan: Foreign key pada mysql digunakan untuk membangun dan menjaga hubungan antar dua tabel atau lebih, tabel dengan foreign key disebut child table dan tabel referensinya disebut sebagai parent table. Ketika akan membuat foreign key diperlukan kolom yang akan menyimpan data berdasarkan tabel referensi (parent). Pembahasan mengenai foreign key dapat dicari dan dibaca melalui halaman daftar isi. Create TableCara pertama untuk membuat foreign key adalah pada saat mendefinisikan tabel, kita dapat langsung membuat/menambahkan foreign key di dalamnya dengan format dan contohnya sebagai berikut: Format:
Contoh:
Jika saat mendefinisikan tabel sementara nama constraint untuk foreign key tidak didefinisikan maka akan diberi nama secara default yang mana nama constraintnya dapat dilihat dengan menjalankan perintah show create table nama_tabel. Alter TableCara kedua untuk membuat/menambahkan foreign key adalah dengan menjalankan alter table, ini dilakukan jika pada saat mendefinisikan table kita lupa untuk memberikan foreign key. Format dan contohnya sebagai berikut: Format:
Contoh:
Menghapus Foreign KeyKita juga dapat menghapus foreign key di mana ada beberapa alasan ketika foreign key perlu dihapus:
Format dan contohnya sebagai berikut: Format:
Contoh:
Merubah Parent TabelJika pada suatu waktu parent table perlu dimodifikasi terutama pada kolom yang menjadi referensi dari child tabel maka kita perlu menghapus foreign key terlebih dahulu untuk dapat menjalankan operasi alter table pada table parent. Contohnya penulis memiliki tabel seperti berikut:
Asumsikan pada tabel parent (dasen) penulis salah memberi nama tabel yang seharusnya menjadi dosen serta kolom id_disen yang seharusnya id_dosen dan penulis juga lupa untuk menambahkan atribut auto_increment pada kolom id_disen sehingga harus menambahkkannya, maka penulis perlu menjalankan perintah alter table, contohnya seperti berikut:
Dapat dilihat bahwa penulis dapat mengganti nama tabel dan kolom pada tabel dasen namun tidak bisa menambahkan atribut auto_increment karena kolom tersebut menjadi referensi dari untuk child table (gaji), dengan demikian kita perlu menghapus foreign key terlebih dahulu dari child table sehingga dapat memodifikasi kolom id_dosen, contohnya seperti berikut:
Untuk mencegah permasalahan serupa kita perlu memahami karakteristik dari foreign key, diantaranya sebagai berikut:
Apakah boleh dalam satu tabel memiliki 2 primary key?Kunci primer adalah bidang atau kumpulan bidang dengan nilai yang unik dalam tabel. Nilai dari kunci tersebut dapat digunakan untuk merujuk ke seluruh catatan karena setiap catatan memiliki nilai yang berbeda untuk kunci tersebut. Setiap tabel hanya dapat memiliki satu kunci primer.
Apakah primary key bisa lebih dari satu?Syarat dari Primary Key
Tabel hanya bisa memiliki satu kunci primer. Jumlah maksimal kunci primer yaitu 16 kolom dengan panjang kunci 900 byte. Kolom kunci utama perlu Anda definisikan “NOT NULL” yang artinya memastikan bahwa nilai dalam kolom tersebut tidak boleh kosong.
Berapa banyak primary key yang dapat dimiliki oleh sebuah tabel?Primary Key disebut juga dengan Kunci Primer. Kunci utama dipilih sebagai pengidentifikasi untuk membedakan satu baris dalam tabel dari yang lain. Pada dasarnya, setiap tabel hanya memiliki satu kunci utama.
Mengapa sebuah primary key harus unique?Selanjutnya mengenai PRIMARY KEY dan UNIQUE. Secara fungsi atau kegunaan, PRIMARY KEY dan UNIQUE keduanya sama-sama digunakan untuk menjamin bahwa tidak ada duplikasi data pada field tertentu. Selain itu, keduanya sama-sama digunakan untuk keperluan indexing.
|