Hallo Gan kali ini saya akan menjelaskan tentang perbedaan antara cascade, restrict, set null, no action pada relasi antar table database. Relasi antar table adalah hubungan antar table yang terbagi menjadi 3 jenis yaitu one to one, one to many dan many to many. Namun pada kesempatan kali ini saya tidak fokus untuk membahas hal tersebut namun saya akan membahas ketika 2 table dihubungkan apa yang terjadi ketika salah satu table di edit ataupun di hapus apakah akan terjadi error atau data akan hilang. Database sendiri sudah memberi option ketika hal itu terjadi yaitu berupa cascade, set null, no action dan restrict.
Kalau kita bicara tentang database tentu biasanya didalamnya terdapat 2 atau lebih tabel yang saling berhubungan satu sama lain (relasi). Namun kadang kita sering mengalami bahwa jika kita merubah salah satu tabel tersebut, kita akan kehilangan pasangannya pada tabel lainnya.

Untuk mengatasi hal tersebut maka ada yang namanya Foreign Key Options. Dimana dalam penggunaannya Foreign Key Options ini digunakan untuk mengatur relasi antar 2 tabel. Jika dalam MySQL atau MariaDB, Foreign Key Options ini dapat digunakan jika kita menggunakan engine InnoDB. Dalam Foreign Key Options tersebut ada 4 pilihan pengaturan antara lain:

RESCRICT adalah jika kita menghapus atau merubah baris data dalam tabel A maka tidak akan diperbolehkan jika pada tabel B masih ditemukan relasi datanya. InnoDB dapat menolak perintah perubahan atau penghapusan tersebut.

CASCADE adalah jika kita menghapus atau merubah baris data dalam tabel A secara otomatis akan menghapus atau merubah baris yang sesuai dalam tabel B.

SET NULL adalah jika kita menghapus atau merubah baris data dalam tabel A secara otomatis akan merubah baris pada tabel B menjadi NULL pada kolom yang terelasi. Hal ini dapat dilakukan jika kolom foreign key tidak memiliki pengaturan NOT NULL.

NO ACTION dalam standar SQL, NO ACTION berarti tidak merubah apapun pada tabel anak jika kita merubah data pada salah satu tabelnya.

Perbedaan RESTRICT, CASCADE, SET NULL dan NO ACTION pada Foreign Key Options
Tag pada: