Jawaban d. benar, jika dan hanya jika mesin penyimpanan benar-benar mendukung dan memberlakukan batasan kunci asing.
Jika tabel dibuat dengan Engine=MyISAM
, maka tidak juga b. atau d. benar.
Jika tabel dibuat dengan Engine=InnoDB
, lalu d. benar.
CATATAN:
Ini berlaku untuk InnoDB jika dan hanya jika FOREIGN_KEY_CHECKS = 1
; jika FOREIGN_KEY_CHECKS = 0
, lalu DELETE
dari tabel induk (foo) akan tidak hapus baris dari tabel anak (foo2) yang mereferensikan baris yang dihapus dari tabel induk.
Verifikasi ini dengan output dari SHOW VARIABLES LIKE 'foreign_key_checks'
(1=ON, 0=OFF)(Default normalnya adalah ON.)
Keluaran dari SHOW CREATE TABLE foo
akan menunjukkan mesin mana yang digunakan tabel.
Keluaran dari SHOW VARIABLES LIKE 'storage_engine'
akan menampilkan mesin default yang digunakan saat tabel dibuat dan mesin tidak ditentukan.