Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memadam Rekod Ibu Bapa dalam PostgreSQL Apabila Tiada Anak Merujuk kepada Mereka?

Bagaimana untuk Memadam Rekod Ibu Bapa dalam PostgreSQL Apabila Tiada Anak Merujuk kepada Mereka?

Mary-Kate Olsen
Lepaskan: 2024-10-29 07:20:02
asal
1046 orang telah melayarinya

How to Delete Parent Records in PostgreSQL When No Children Refer to Them?

Pemadaman Induk Bertingkat: Memadam Induk Apabila Tidak Lagi Dirujuk oleh Kanak-kanak

Dalam sistem pangkalan data, apabila jadual anak merujuk jadual induk melalui kunci asing, senario biasa timbul apabila memadamkan baris anak: patutkah baris induk turut dipadamkan jika tiada anak lain merujuknya?

PostgreSQL 9.1 dan Kemudian: Pendekatan CTE Pengubahsuaian Data

Menghapuskan Syarat Perlumbaan
<code class="sql">WITH del_child AS (
    DELETE FROM child
    WHERE  child_id = 1
    RETURNING parent_id, child_id
    )
DELETE FROM parent p
USING  del_child x
WHERE  p.parent_id = x.parent_id
AND    NOT EXISTS (
   SELECT FROM child c
   WHERE  c.parent_id = x.parent_id
   AND    c.child_id <> x.child_id   -- !
   );</code>
Salin selepas log masuk

Untuk menghapuskan sepenuhnya keadaan perlumbaan, ia perlu penting untuk mengunci baris induk sebelum sebarang pemadaman berlaku:

Kaedah ini memastikan bahawa hanya satu transaksi boleh mengunci ibu/bapa yang sama pada satu masa, menghalang berbilang transaksi daripada memadamkan semua anak dan meninggalkan ibu bapa yang tergantung.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod Ibu Bapa dalam PostgreSQL Apabila Tiada Anak Merujuk kepada Mereka?. 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