背景:
在這種情況下,目標是確保唯一的組合URL 和參數字串在MySQL 表中保持唯一性。但是,參數字串長度超出了 MySQL 的鍵長度限制,導致無法使用唯一鍵約束。
觸發器實作:
要解決此問題,觸發器可以用來強制執行唯一性限制。觸發代碼在允許插入操作之前檢查重複條目。
處理重複條目:
觸發程式碼包含兩個關鍵部分:
中止/引發異常C#:
要在偵測到重複條目時拋出異常,可以加入以下程式碼:
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Duplicate entry detected';
改進的解決方案:
更高級的解決方案利用 MySQL 的 SIGNAL 函數,它允許自訂錯誤訊息和捕獲的異常。提供的程式碼中概述了此方法:CREATE TRIGGER `TestTable_SomeTrigger` BEFORE UPDATE ON `test_table` FOR EACH ROW BEGIN DECLARE msg VARCHAR(255); IF (SomeTestToFail = "FAIL!") THEN set msg = "DIE: You broke the rules... I will now Smite you, hold still..."; SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg; END IF; -- Do any other code here you may want to occur if it's all OK or leave blank it will be -- skipped if the above if is true END$$此方法傳回可以在 C# 程式碼中攔截和處理的自訂錯誤訊息。
以上是如何使用觸發器防止 MySQL 表中出現重複條目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!