Aldi My Teacher is WWW. #Tidak ada rugi untuk belajar hal baru.

Perbedaan RESTRICT, CASCADE, SET NULL dan NO ACTION pada Foreign Key di MYSQL / MARIADB

44 sec read

mariadb-and-mysql

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.

 

Aldi My Teacher is WWW. #Tidak ada rugi untuk belajar hal baru.

Leave a Reply

Your email address will not be published. Required fields are marked *