Postingan lainnya
Menghapus data pada table yang berelasi
DELETE FROM Lokasi where id='bandung';
Jika ada Tabel Lokasi (id_lokasi, lokasi), dan Tabel kendaraan yang berelasi dengan lokasi (id_kendaraan, id_lokasi, namaKendaraan), jika suatu saat salah satu lokasinya dihapus ternyata lokasi tersebut ngelink ke table kendaraan, gimana caranya nyimpan histori kendaraan tersebut . (kl lokasi dihapus, kendaraan tetep ada)
1 Jawaban:
<div>Tipe foreign key dalam relasi tabel ada 4 jenis, yaitu : <br><strong><br>RESCRICT</strong> 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.<br><br></div><div><strong>CASCADE</strong> adalah jika kita menghapus atau merubah baris data dalam tabel A secara otomatis akan menghapus atau merubah baris yang sesuai dalam tabel B.<br><br></div><div><strong>SET NULL</strong> 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.<br><br></div><div><strong>NO ACTION</strong> dalam standar SQL, NO ACTION berarti tidak merubah apapun pada tabel anak jika kita merubah data pada salah satu tabelnya.<br><br></div><div>Untuk kasus agan, mungkin bisa pakai SET NULL yang akan merubah nilai kolom yang berelasinya menjadi NULL.<br><br>Referensi <a href="https://bayu.pinasthika.com/ti/database/perbedaan-restrict-cascade-set-null-dan-no-action-pada-foreign-key-options/">https://bayu.pinasthika.com/ti/database/perbedaan-restrict-cascade-set-null-dan-no-action-pada-foreign-key-options/</a></div>