Kamis, 06 Juni 2013

Pengertian Cascade pada Mysql dan contohnya



CASCADE adalah fungsi yang berguna untuk membuat relasi, Baris baris dalam tabel anak akan dihapus ketika baris yang berkaitan/relasi dihapus dan juga akan diupdate jika induk diupdate.
Perintah SQL untuk membuat tabel  ‘MHS’
CREATE TABLE mhs
(
  nim  varchar(8),
  namaMhs varchar(20),
  PRIMARY KEY (nim)
) TYPE = INNODB;

Perintah SQL untuk membuat tabel  ‘MK’
CREATE TABLE mk
(
  kodeMK  varchar(3),
  namaMK varchar(20),
  PRIMARY KEY (kodeMK)
) TYPE = INNODB;

Sekarang, kita lanjutkan untuk membuat tabel untuk ‘ambilMK’.
CREATE TABLE ambilMK
(
  nim  varchar(8),
  kodeMK varchar(3),
  nilai float(3,2),
  PRIMARY KEY (nim, kodeMK),
  FOREIGN KEY (nim) REFERENCES mhs (nim) ON DELETE CASCADE ON UPDATE CASCADE,
  FOREIGN KEY (kodeMK) REFERENCES mk (kodeMK) ON DELETE CASCADE ON UPDATE CASCADE
) TYPE = INNODB;

Isi data sesuai selera kalian, kalo punyaku
Table MK
Kode mk              Nama Mk
1                                                    Database
2                                                    Web dinamis

Tabel Mhs
Nim                        Nama
12121159               OjixZZZ
12121160               xxxx

Tabel AmbilMk
Nim                        KodeMk               Nilai
12121159                     1                       9.0
12121160                     2                       9.0

1.       On delete cascade adalah sebuah fitur/fungsi 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.
Contoh :
                 DELETE FROM mhs WHERE nim = ‘12121160’;

2.       On Update cascade adalah sebuah fitur/fungsi yang diberikan untuk sebuah tabel yang berelasi, yang
memungkinkan untuk mengupdate data otomatis pada tabel anak apabila data pada tabel parent diupdate.
Contoh :
                UPDATE mhs SET nim=’12121160’ WHERE nim=’12121159’;
 

1 komentar: