Apa maksudnya no action mysql

Hallo blogger 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. 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 / di hapus apakah akan terjadi error atau data akan hilang. Database sendiri sudah memberi jagaan ketika hal itu terjadi yaitu berupa cascade, set null, no action dan strict. berikut penjelasannya


  1. Cascade = apabila id pada table A dihapus maka table B juga ikut terhapus
  2. SET NULL = apabila id pada table A dihapus maka table B di set null
  3. No action = apabila id pada table A dihapus maka tidak dilakukan apa-apa
  4. Restrict = apabila id pada table A ingin dihapus maka tidak diperbolehkan jika di table B ditemukan ID yang berelasi


Untuk face settingnya adalah seperti ini


Masuk ke table yang berelasi kemudian pilih struktur tab à kemudian relation view à pada kolom Foreign Key Constraint à beri nama constraint à pilih on update sesuai dengan penjelasan diatas begitu juga dengan on delete.


Apa maksudnya no action mysql


Apa maksudnya no action mysql
Gambar Sintak Restrict Setelah Dijalankan


Gambar Sintak Restrict Setelah Dijalankan merupakan tampilan kode program 3. 1 Sintak Restrict yang sudah berhasil dijalankan

 

2) Kaskade

Cascade dalam bahasa Indonesia bertingkat, maksudnya adalah bila data pada tabel induk di-delete atau di-update maka secara otomatis data pada tabel lain yang memiliki relasi akan di-delete atau di-update juga

________satu_______

 

Kode Program Sintak Cascade adalah sintak yang dapat digunakan untuk menambahkan refrential integrity constraint cascade.  

 

Apa maksudnya no action mysql
Tambahkan teksGambar Sintak Cascade


Gambar Sintak Cascade merupakan tampilan dari Kode Program Sintak Cascade yang sudah berhasil dijalankan pada CMD


3) Tidak Ada Tindakan

No Action berarti mengabaikan referensi, artinya diperbolehkan untuk memperbarui, menghapus ataupun menambahkan data pada tabel, tetapi tidak akan berpengaruh pada data yang berelasi dengan tabel tersebut
 

CREATE TABLE prestasi(
kode CHAR(6) NOT NULL,
id_p INT NOT NULL,
prestasi VARCHAR(255) NOT NULL,
keterangan TEXT,
PRIMARY KEY (kode),
FOREIGN KEY (id_p) REFERENCES pegawai(id_p) 
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=INNODB;


Kode Program No Action merupakan sintak yang digunakan untuk menambahkan refrential integrity constraint cascade

 

Apa maksudnya no action mysql
Gambar No Action


Gambar No Action merupakan tampilan dari Kode Program No Action yang telah berhasil dijalankan
 

 

4) Tetapkan Null

Set null adalah menghapus atau meng-update baris data dalam tabel induk dan men-set kolom atau beberapa kolom dalam tabel anak menjadi null. hal ini akan valid jika kolom kunci asing tidak bukan nol. jika akan menggunakan set null bisa digunakan sintak On Delete Set Null dan On Update Set Null

CREATE TABLE prestasi(
kode char(6) NOT NULL,
kode_karyawan char(6),
prestasi varchar(255) NOT NULL,
keterangan text,
PRIMARY KEY (kode),
FOREIGN KEY (kode_karyawan) REFERENCES karyawan (kode) 
ON DELETE SET NULL
) ENGINE=InnoDB;

 

Kode Program Sintak Set Null merupakan sintak yang digunakan untuk menambahkan refrential integrity constraint cascade dengan type set null


Apa maksudnya no action mysql
Gambar Sintak Set Null



Gambar Sintak Set Null Setelah Dijalankan merupakan tampilan Kode Program Sintak Set Null yang berhasil dijalankan dalam CMD


 

5) Tetapkan Default

Perintah Set Default ini dibutuhkan oleh parser, tetapi InnoDB tidak menerima definisi tabel berupa On Delete Set Default atau On Delete Set Default
 

CREATE TABLE prestasi( kode char(6) NOT NULL,
kode_karyawan char(6),
prestasi varchar(255) NOT NULL,
keterangan text,
PRIMARY KEY (kode), FOREIGN KEY (kode_karyawan) REFERENCES karyawan (kode) ON DELETE SET DEFAULT
) ENGINE=MyISAM;
_


Kode Program Sintak Set Default merupakan sintak yang digunakan untuk menambahkan refrential integrity constraint cascade dengan type Set Default

 

Apa maksudnya no action mysql
Gambar Sintak Atur Default


Gambar Sintak Set Default merupakan tampilan Kode Program Sintak Set Default Setelah Dijalanakan


Baca Main. Bahasa Definisi Data (DDL). contoh dan gambar



Cara Mengubah Type Tabel dan Referential Integrity Constraint Dalam MySQL

Untuk Mengubah Type Tabel dan Referential Integrity Constraint dalam MYSQL dapa digunakn sintak alter

1) Mengganti Type Table

Untuk merubah type tabel yang sudah digunakan dalam database MYSQL dapat menggunakan sintak Alter

ALTER TABLE karyawan ENGINE=MyISAM;


Kode Program Sintak Alter Tipe Tabel merupakan sintak Alter yang dpaat digunakan untuk mengubah tipe tabel yang sedang aktif atau digunakan dalam tabel.  


Apa maksudnya no action mysql
Gambar Sintak Alter Tipe Tabel
Sintak tersebut jikan dijalankan maka tipe tabel yang digunakan dalam tabel karyawan akan berganti menjadi MyISAM dari tipe tabel default InnoDB seperti Gambar Sintak Alter Tipe Tabel



2) Kendala Integritas Referensial

Referential Integrity Constraint dapat diganti dengan sintak Alter yaitu dengan menghapus foreign key yang sudah ada lalu menambahkan dengan yang baru

ALTER TABLE transaksi
DROP FOREIGN KEY transaksi_ibfk_1;
_


Kode program Syntax Alter Foreign Key digunakan untuk menghapus foreign key yang sudah terbentuk sebelumnya


ALTER TABLE transaksi ADD FOREIGN KEY(id_penumpang) 
REFERENCES penumpang(id_penumpang)
ON UPDATE RESTRICT ON DELETE RESTRICT;


Kode program Alter Table Transaksi Add Foreign Key merupakan sintak yang digunkan untuk menambahkan foreign key baru pad tabel transaksi dengan type Refrential Integrity Constraint Restrict

Apa itu disetel nol?

SET NULL adalah jika kita menghapus atau mengubah baris data dalam tabel A secara otomatis akan mengubah baris pada tabel B menjadi NULL pada kolom yang terelasi. Hal ini dapat dilakukan jika kolom foreign key tidak memiliki pengaturan NOT NULL .

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).

Apa yang dimaksud dengan On delete cascade?

Klausul ON DELETE CASCADE berarti bahwa jika pelanggan telah dihapus dari tabel Customer, semua baris di tabel Orders yang berisi nilai pengidentifikasi pelanggan yang sama juga akan dihapus.