Saya tidak merancang skema setiap hari, tetapi ketika saya melakukannya, saya mencoba untuk mengatur pembaruan / penghapusan kaskade dengan benar untuk membuat administrasi lebih mudah. Saya mengerti bagaimana kaskade bekerja, tetapi saya tidak pernah ingat tabel mana yang mana.
Sebagai contoh, jika saya memiliki dua tabel - Parent
dan Child
- dengan kunci asing pada Child
referensi itu Parent
dan memiliki ON DELETE CASCADE
, catatan mana yang memicu kaskade dan catatan mana yang bisa dihapus oleh kaskade? Dugaan pertama saya adalah Child
rekaman yang dihapus ketika Parent
catatan dihapus, karena Child
catatan bergantung pada Parent
catatan, tetapi ON DELETE
ambigu; itu bisa berarti menghapus Parent
catatan ketika Child
catatan dihapus, atau itu bisa berarti menghapus Child
catatan ketika Parent
dihapus. Jadi yang mana?
Saya berharap sintaksnya ON PARENT DELETE, CASCADE
, ON FOREIGN DELETE, CASCADE
atau sesuatu yang serupa untuk menghapus ambiguitas. Adakah yang punya mnemonik untuk mengingat ini?