Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggunakan Pencetus MySQL untuk Menguatkuasakan Keunikan pada Pasangan Parameter URL dan Mengendalikan Entri Pendua dalam C#?

Bagaimanakah Saya Boleh Menggunakan Pencetus MySQL untuk Menguatkuasakan Keunikan pada Pasangan Parameter URL dan Mengendalikan Entri Pendua dalam C#?

Patricia Arquette
Patricia Arquetteasal
2024-12-08 20:35:17629semak imbas

How Can I Use MySQL Triggers to Enforce Uniqueness on URL-Parameter Pairs and Handle Duplicate Entries in C#?

Menggugurkan Operasi INSERT dalam Pencetus MySQL: Mencapai Kekangan Unik pada Pasangan Parameter URL

Untuk menguatkuasakan keunikan pada gabungan URL dan rentetan parameter dalam jadual MySQL, pencetus boleh digunakan. Walau bagaimanapun, membatalkan operasi sisipan dalam pencetus untuk mengelakkan entri pendua memerlukan pengendalian khusus. Artikel ini membimbing anda melalui langkah-langkah untuk membuang pengecualian dan membenarkan sisipan secara bersyarat dalam pencetus anda.

Melempar Pengecualian ke C#

Untuk menandakan ralat kemasukan pendua kepada kod C# , anda boleh menggunakan pernyataan SIGNAL MySQL dalam pencetus. Di bawah ialah coretan kod yang dikemas kini untuk pencetus urls_check_duplicates:

CREATE TRIGGER urls_check_duplicates
BEFORE INSERT ON urls
FOR EACH ROW

BEGIN
DECLARE num_rows INTEGER;

SELECT COUNT(*)
INTO num_rows
FROM urls
WHERE url = NEW.url AND params = NEW.params;

IF num_rows > 0 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Duplicate URL-parameter pair found';
ELSE
    ... Allow insert ...
END

Dalam kod C# anda, anda boleh mengendalikan ralat yang dilemparkan oleh pencetus menggunakan kelas MySqlException:

try
{
    // Execute INSERT statement
}
catch (MySqlException ex)
{
    if (ex.Message.Contains("Duplicate URL-parameter pair found"))
    {
        // Handle duplicate entry error
    }
}

Elaun Sisipan Bersyarat

Untuk membenarkan sisipan hanya jika tiada entri pendua, hanya keluarkan blok ELSE dalam kod pencetus. Kod berikut hanya memasukkan pasangan URL-parameter yang unik:

CREATE TRIGGER urls_check_duplicates
BEFORE INSERT ON urls
FOR EACH ROW

BEGIN
DECLARE num_rows INTEGER;

SELECT COUNT(*)
INTO num_rows
FROM urls
WHERE url = NEW.url AND params = NEW.params;

IF num_rows > 0 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Duplicate URL-parameter pair found';
END

Dengan menggunakan gabungan pelaksanaan SIGNAL dan bersyarat dalam pencetus, anda boleh menguatkuasakan kekangan unik pada pasangan parameter URL dalam jadual MySQL anda dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pencetus MySQL untuk Menguatkuasakan Keunikan pada Pasangan Parameter URL dan Mengendalikan Entri Pendua dalam C#?. 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