> 데이터 베이스 > MySQL 튜토리얼 > 중복 항목을 방지하기 위해 트리거를 사용하여 MySQL INSERT 작업을 중단하거나 허용하는 방법은 무엇입니까?

중복 항목을 방지하기 위해 트리거를 사용하여 MySQL INSERT 작업을 중단하거나 허용하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-12 12:15:28
원래의
226명이 탐색했습니다.

How to Abort or Allow MySQL INSERT Operations Using Triggers to Prevent Duplicate Entries?

트리거를 사용하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿