PERBEDAAN RESTRICT CASCADE SET NULL DAN NO ACTION PADA FOREIGN KEY DI MYSQL MARIADB

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

 

mariadb-and-mysql

MYSQL adalah database yang menurut saya sering digunakan, karena rata-rata pemula akan menggunakan mysql. Dan kita akan sering menggunakan harus join table (relasi) pada query kita. Disana kita akan mengenal yg disebut dengan foreign key.

Apakah foreig key itu?

Foreign Key - adalah Sebuah kumpulan field dalam satu relasi yang digunakan untuk me“refer” (menunjuk) ke suatu baris (tuple) pada relasi yang lain (harus berkorespondensi dengan primary key pada relasi yang kedua), seperti: ‘logical pointer’. Sedangkan hubungan antara keduanya (primary key dan foreign key) di jelaskan sebagai berikut,“Primary Key” adalah field kunci / utama dari suatu tabel yang menunjukkan bahwa field yang menjadi kunci tersebut tidak bisa diisi dengan data yang sama, atau dengan kata lain Primary key menjadikan tiap record memiliki identitas sendiri-sendiri yang membedakan satu sama lainnya (unik).“Foreign key” adalah satu attribute yang melengkapi satu relationship yang menunjukan ke induknya, dengan kata lain keduanya saling berkaitan. pengertian lain ; Foreign key : merupakan sembarang atribut yang menunjuk kepada primary key pada tabel lain.

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.

Sekian catatan kali ini.

Lanjut kerja!!!!!!!


ARTIKEL TERKAIT
Comments : To post comment, you must login first using google. No worry, it's safe