Perbedaan RESTRICT, CASCADE, SET NULL dan NO ACTION pada Foreign Key Options
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.
Komentar
Posting Komentar