MySQL 트리거가 자동으로 필드 값을 해당 ID로 설정할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-11-08 15:32:02
원래의
186명이 탐색했습니다.

Can MySQL Triggers Automatically Set a Field's Value to Its ID?

ID를 기반으로 필드를 업데이트하는 MySQL 트리거

트리거를 활용하여 필드 값을 해당 ID로 자동 설정할 수 있는지 확인 다양한 측면의 탐색이 필요합니다.

트리거 정의

조건에 따라 삽입하기 전에 필드를 업데이트하는 트리거에 대한 MySQL 구문은 다음과 같습니다.

CREATE TRIGGER trigger_name BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
  IF NEW.group_id IS NULL
    THEN SET NEW.group_id = NEW.id;
  END IF;
END;
로그인 후 복사

트리거 제한

그러나 이 접근 방식에는 한계가 있습니다. BEFORE INSERT 단계에서는 아직 ID 값을 사용할 수 없으므로 group_id가 NULL이면 기본값은 0이다.

AFTER INSERT 단계에서는 컬럼 내 값 수정이 허용되지 않아 이에 적합하지 않다. 목적.

대안 솔루션

MySQL 제한으로 인해 순수 트리거 솔루션은 불가능합니다. 대신 삽입과 즉시 업데이트를 모두 포함하는 결합된 접근 방식을 사용할 수 있습니다.

  1. group_id에 NULL을 사용하여 레코드를 삽입합니다.
  2. LAST_INSERT_ID()를 사용하여 삽입된 레코드의 ID를 검색합니다.
  3. group_id 필드를 ID 값으로 업데이트하세요(있는 경우). NULL.

이 접근 방식을 사용하면 지정된 경우와 생략된 경우 두 시나리오 모두에서 group_id 필드가 올바르게 설정됩니다.

위 내용은 MySQL 트리거가 자동으로 필드 값을 해당 ID로 설정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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