Rumah  >  Artikel  >  pangkalan data  >  Apakah Gelagat Default ON DELETE MySQL?

Apakah Gelagat Default ON DELETE MySQL?

DDD
DDDasal
2024-11-04 12:00:05508semak imbas

What is MySQL's Default ON DELETE Behavior?

Kelakuan Lalai MySQL ON DELETE

Apabila bekerja dengan pangkalan data, memahami tingkah laku kekangan kunci asing adalah penting untuk mengekalkan integriti data. MySQL menyediakan pelbagai pilihan untuk menentukan tindakan yang perlu diambil apabila baris dalam jadual induk dipadamkan, salah satunya ialah kelakuan lalai.

Gelagat Lalai

MySQL's tingkah laku lalai ON DELETE adalah untuk menguatkuasakan integriti rujukan, menghalang sebarang perubahan pada jadual induk yang akan memutuskan hubungan dengan jadual anak. Ini dicapai melalui pilihan TIADA TINDAKAN atau TERHAD. Kedua-dua pilihan ini pada asasnya melarang pemadaman jika baris bergantung wujud dalam jadual anak.

Pilihan Lain

MySQL menawarkan pilihan tambahan untuk mengendalikan acara ON DELETE:

  • SET NULL: Memadamkan baris induk dan menetapkan kunci asing dalam jadual anak kepada NULL, jika tidak diisytiharkan BUKAN NULL.
  • CASCADE: Padam baris induk dan secara automatik memadamkan baris bersandar dalam jadual anak.
  • TETAPAN LAILAI: Pilihan ini ditolak oleh InnoDB dan tidak boleh digunakan.

Oleh itu, untuk menjawab soalan:

  • Ya, premisnya betul. Tingkah laku lalai MySQL ON DELETE ialah NO ACTION (atau RESTRICT), menghalang perubahan pangkalan data yang melanggar kekangan kunci asing.
  • NO ACTION dan RESTRICT adalah sinonim dan ia digunakan apabila tiada klausa ON DELETE ditentukan.
  • SET NULL membenarkan pemadaman baris induk dan tetapkan kunci asing kepada NULL.
  • CASCADE memadamkan baris induk dan baris bersandar.
  • SET DEFAULT tidak boleh digunakan kerana ia ditolak oleh InnoDB.

Atas ialah kandungan terperinci Apakah Gelagat Default ON DELETE MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn