Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
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>