Cara menggunakan mysql cascade

Pengertian Perintah Cascade Pada MySql  ---Cascade bila dibahasa indonesiakan adalah bertingkat, maksudya adalah bila data pada table_induk di delete atau di update maka secara otomatis data pada tabel lain yang memiliki relasi akan di delete/di update juga.contohnya

Opsi ON DELETE dan ON UPDATE CASCADE
On delete cascade adalah sebuah fitur yang diberikan untuk sebuah tabel yang berelasi; yang memungkinkan untuk menghapus data pada tabel anak apabila data pada tabel parent terhapus. Sintaks on delete cascade biasanya ditempatkan pada kalimat yang mendeklarasikan sebuah foreingn key.

Untuk contoh syntak pada ON DELETE dan ON UPDATE CASCADE :

Pastikan Anda Mempuyai Tabel dokter dan pasien karena kedua tabel tersebut akan di relasikan.

ALTER Table dokter
ADD FOREIGN KEY (kd_dokter) REFERENCES pasien_putri (kd_dokter)
ON DELETE CASCADE
ON UPDATE CASCADE;

setelah itu baru kita gunakan perintah Delete :

DELETE FROM pasien_putri WHERE kd_dokter='2';

hasil praktikannya:
Yang belum di hapus:

Cara menggunakan mysql cascade

Yang sudah di hapus:

Cara menggunakan mysql cascade

Karena kita menggunakan OPSI CASCADE pada ON DELETE dan ON UPDATE nya maka bila kita menghapus salah satu kolom pada table induk maka table anak pun akan terhapus juga. Seperti pada contoh di atas kd_dokter no 2 di hapus ditabel indukknya maka di tabel anak nya kd _dokter no 2 juga otomatis terhapus.

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 many to many, many to one dan one 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. Berikut penjelasanya :


Cascade = apabila id pada table A dihapus maka table B juga ikut terhapus

SET NULL = apabila id pada table A dihapus maka table B di set null

No action = apabila id pada table A dihapus maka tidak dilakukan apa-apa

Restrict = apabila id pada table A ingin dihapus maka tidak diperbolehkan jika di table B ditemukan ID yang berelasi

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.

CASCADE adalah fungsi yang berguna untuk membuat relasi. Baris baris dalam tabel anak akan dihapus ketika baris yang berkaitan/berelasi dihapus (ON DELETE) dan/atau juga akan diupdate jika tabel induk diupdate (ON UPDATE).

Cara menggunakan mysql cascade
Gambar : CASCADE SQL

Dengan kata lain, jika nilai primary key (PK) dari tabel induk (parent) di UPDATE, maka nilai foreign key (FK) pada tabel referensi akan diperbarui dengan nilai primary key dari tabel induk.

Namun jika di tabel induk dilakukan operasi DELETE, maka nilai foreign key tabel referensi akan dihapus.

Demikian penjelasan tentang CASCADE pada SQL. Semoga bermanfaat. Topik artikel ini terinspirasi dari forum mata kuliah Database Design dan Programming with SQL, di jurusan Sistem Informasi, Universitas Mercu Buana Yogyakarta bertajuk "Apa yang Anda ketahui tentang CASCADE? Jelaskan!"

Apa itu Cascade di mysql?

CASCADE adalah fungsi yang berguna untuk membuat relasi. Baris baris dalam tabel anak akan dihapus ketika baris yang berkaitan/berelasi dihapus ( ON DELETE ) dan/atau juga akan diupdate jika tabel induk diupdate ( ON UPDATE ).

On update cascade untuk apa?

Klausul ON UPDATE CASCADE berarti jika pengidentifikasi pelanggan (CustId) telah diperbarui di tabel Customer, pembaruan akan diteruskan melalui tabel Orders. Setiap pesanan yang berisi nilai pengidentifikasi pelanggan yang terkait akan diperbarui secara otomatis beserta dengan nilai baru.

Apa itu Cascade di PHPMyAdmin?

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

Apa itu foreign key dalam database?

Kunci asing (foreign key) adalah sebuah atribut yang terdapat didalam suatu tabel yang dimana untuk digunakan untuk menciptakan hubungan antara dua tabel. Di dalam relational database penggunaan foreign key merujuk pada suatu kunci primer yang terdapat pada tabel pertama atau juga dikenal dengan tabel master.