Rumah > pangkalan data > tutorial mysql > Bolehkah MySQL ON DELETE CASCADE Memadam Rekod Komponen Secara Automatik Semasa Memelihara Rekod Jenis?

Bolehkah MySQL ON DELETE CASCADE Memadam Rekod Komponen Secara Automatik Semasa Memelihara Rekod Jenis?

Patricia Arquette
Lepaskan: 2025-01-10 12:19:42
asal
486 orang telah melayarinya

Can MySQL's ON DELETE CASCADE Automatically Delete Component Records While Preserving the Type Record?

MySQL's ON DELETE CASCADE: Memadam Komponen Semasa Memelihara Rekod Jenis

MySQL ON DELETE CASCADE menawarkan pemadaman automatik rekod bergantung apabila rekod berkaitan dialih keluar. Walau bagaimanapun, penggunaannya memerlukan pertimbangan teliti perhubungan jadual.

Pertimbangkan komponen penstrukturan pangkalan data, setiap satu dipautkan kepada jenis tertentu. Matlamat: padam semua komponen yang dikaitkan dengan jenis tanpa memadamkan jenis itu sendiri. Adakah ini boleh dicapai?

Pendekatannya

Mencapai ini melibatkan penggunaan strategik ON DELETE CASCADE dalam struktur jadual yang jelas. Penyelesaiannya adalah seperti berikut:

<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
  1. Penciptaan Jadual Komponen: Jadual ini menyimpan butiran komponen dan typeId yang sepadan.

  2. Pelaksanaan Kunci Asing: Kekangan kunci asing (myForeignKey) menghubungkan lajur components jadual typeId ke lajur types jadual id.

  3. ON DELETE CASCADE Spesifikasi: Elemen penting: ON DELETE CASCADE. Apabila rekod dalam jadual types dipadamkan (dengan mengandaikan kedua-dua jadual menggunakan enjin storan InnoDB), semua rekod berkaitan dalam perkongsian jadual components yang typeId dipadamkan secara automatik.

Pertimbangan Utama:

InnoDB adalah penting. MyISAM, kekurangan sokongan kunci asing, menjadikan pendekatan ini tidak berkesan.

Atas ialah kandungan terperinci Bolehkah MySQL ON DELETE CASCADE Memadam Rekod Komponen Secara Automatik Semasa Memelihara Rekod Jenis?. 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