使用觸發器中止MySQL INSERT 操作
為了防止基於URL 和參數字串的表中出現重複條目,可以實現觸發器。此觸發器將評估傳入的 INSERT 操作是否會導致重複,並在必要時引發異常或相應地允許插入。
中止操作
對於「... ABORT/向C# 拋出異常...」部分,您可以使用SIGNAL 語句:
SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = 'Duplicate entry: URL and parameter string already exists.';
這將引發C# 程式碼可以捕獲的MySQLException。
允許插入
對於「...允許插入...」部分,只需省略 SIGNAL 語句。如果沒有偵測到重複條目,插入將照常進行。
修訂的觸發器代碼
這裡是修改後的觸發器代碼,結合了中止邏輯和允許插入邏輯:
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 'HY000' SET MESSAGE_TEXT = 'Duplicate entry: URL and parameter string already exists.'; END END
以上是如何使用觸發器中止或允許 MySQL INSERT 操作以防止重複條目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!