Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Memadam Rekod Anak dalam MySQL Apabila Rekod Induk Dipadamkan Tanpa Memadam Induk?

Bagaimanakah Saya Boleh Memadam Rekod Anak dalam MySQL Apabila Rekod Induk Dipadamkan Tanpa Memadam Induk?

Patricia Arquette
Lepaskan: 2025-01-10 12:17:42
asal
463 orang telah melayarinya

How to Delete Child Records in MySQL When a Parent Record is Deleted (Without Deleting the Parent)

Memanfaatkan ON DELETE CASCADE MySQL untuk Pemadaman Data Bergantung

Mengekalkan integriti data selalunya memerlukan pengalihan keluar automatik data yang berkaitan selepas pemadaman rekod induk. Kekangan ON DELETE CASCADE MySQL menyediakan fungsi ini. Salah faham biasa ialah kekangan ini turut memadamkan rekod induk apabila rekod anak dipadamkan; ini tidak betul.

Untuk mencapai tingkah laku yang diingini—memadamkan rekod anak (komponen) apabila rekod induk (jenis) dipadamkan tanpa menjejaskan ibu bapa—anda mesti menentukan hubungan kunci asing dalam jadual anak menggunakan ON DELETE CASCADE. Yang berikut menggambarkan ini untuk jadual components:

<code class="language-sql">CREATE TABLE `components` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `typeId` int(10) unsigned NOT NULL,
    `moreInfo` VARCHAR(32),
    -- etc
    PRIMARY KEY (`id`),
    KEY `type` (`typeId`),
    CONSTRAINT `myForeignKey` FOREIGN KEY (`typeId`)
      REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);</code>
Salin selepas log masuk

Konfigurasi ini memastikan bahawa pemadaman rekod daripada jadual types secara automatik memadamkan semua entri yang sepadan dalam jadual components, meninggalkan rekod jadual types tidak disentuh.

Pertimbangan Penting:

Ingat bahawa kekangan kunci asing memerlukan penggunaan enjin storan InnoDB. MyISAM, enjin lalai dalam versi MySQL yang lebih lama, tidak menyokong kunci asing. Oleh itu, pastikan jadual anda menggunakan InnoDB agar fungsi ini berfungsi dengan betul.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadam Rekod Anak dalam MySQL Apabila Rekod Induk Dipadamkan Tanpa Memadam Induk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan