Apabila saya menggunakan Navicat untuk mysql untuk mereka bentuk jadual hari ini, apabila menetapkan kunci asing, terdapat empat nilai untuk dipilih dalam dua lajur semasa memadam dan mengemas kini: CASCADE, NO ACTION, HAD, SET NULL, saya mencuba semuanya sendiri, dan perbezaannya adalah seperti berikut:
CASCADE: Apabila jadual induk memadam dan mengemas kini, jadual anak akan memadam dan mengemas kini rekod yang berkaitan ;
SET NULL: Apabila jadual induk dipadam atau dikemas kini, jadual anak akan menetapkan lajur medan kunci asing rekod yang berkaitan kepada null, jadi sila ambil perhatian bahawa kunci asing tidak boleh ditetapkan kepada tidak batal apabila mereka bentuk jadual anak; 🎜>
空、RESTRICT、NO ACTION | 删除:从表记录不存在时,主表才可以删除,删除从表,主表不变。 更新:从表记录不存在时,主表菜可以更新,更新从表,主表不变。 |
CASCADE | 删除:删除主表时自动删除从表。删除从表,主表不变。 更新:更新主表时自动更新从表。更新从表,主表不变。 |
SET NULL | 删除:删除主表时自动更新从表为NULL,删除从表,主表不变。 更新:更新主表时自动更新从表值为NULL。更新从表,主表不变。 |
Di sini: Medan id2 jadual a ialah medan kunci asing, rujuk kunci utama jadual b, jadi jadual b ialah jadual induk dan jadual a ialah jadual anak; kemudian tetapkan empat nilai yang berbeza apabila menetapkan kunci asing jadual a.
Atas ialah kandungan terperinci Apakah CASCADE, NO ACTION, RESTRICT, dan SET NULL dalam tetapan kunci asing Mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!