Tuesday, 4 June 2013

CASCADE

Pengertian Cascade dan contoh perintahnya :


CASCADE adalah Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk dihapus ketika barisbaris yang berkaitan dihapus dari tabel induk. Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk diupdate ketika nilai-nilai yang berkaitan diupdate dalam tabel induk.
Cascade akan menghapus baris dari parent table dan secara otomatis menghapus baris yang sesuai dalam child table, jika baris yang dihapus tadi merupakan candidate key yang digunakan sebagai foreign key pada tabel lainnya, maka aturan foreign key untuk tabel ini dihilangkan.

A.  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 :
Perhatikan Contoh pada table mahasiswa dan matakuliah pada suatu database akademik dibawah ini :


Perhatikan baris kode pada table mahasiswa di bawah ini :

FOREIGN KEY (id_matkul) REFERENCES matakuliah (id_matkul)

itulah cara mendefinisikan foreign key pada mysql id_matkul didefinisikan sebagai foreign key yang mereferensikan (mengacu) pada table matkul pada kolom id_matkul.

Contoh untuk mengubah struktur table dari mahasiswa dengan merubah refences sebagai foreign key dengan opsi ON DELETE dan ON UPDATE CASCADE
Perintahnya :
ALTER TABLE mahasiswa
ADD FOREIGN KEY (id_matkul) REFERNCES matakuliah (id_matkul)
ON DELETE CASCADE
ON UPDATE CASCADE

Setelah itu apabila kita ingin menghapus record yang id_matkulnya IB111 maka tulis perintah :
DELETE FROM matakuliah WHERE id_matkul='IB111';

Perintah di atas kita terapkan di mysql seperti gambar di bawah ini dan lihat perubahanya setelah di hapus :

Penjelasan Gambar :
KArena kita menggunakan OPSI CASCADE pada ON DELETE dan UPDATE nya bila kita menghapus salah satu kolom pada table induk anak pun akan terhapus juga. Terlihat bahwa data mahasiswa yang bernama ERvi Risma Fitriani di hapus karena Ervi Risma Fitriani mengambil matkul dengan id 'IB111' dimana idtersebut telah dihapus pada table matakuliah.

No comments:

Post a Comment